ThreadMBean
package com.google.thread3; import java.lang.management.ManagementFactory;
import java.lang.management.ThreadInfo;
import java.lang.management.ThreadMXBean; public class ThreadDemo {
public static void main(String[] args) {
ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
ThreadInfo[] dumpAllThreads = threadMXBean.dumpAllThreads(false, false);
for (int i = 0; i < dumpAllThreads.length; i++) {
ThreadInfo threadInfo = dumpAllThreads[i];
System.out.println(threadInfo.getThreadId()+threadInfo.getThreadName());
}
}
}
ABA问题
package com.google; import java.util.concurrent.atomic.AtomicInteger; //volatile 不保证原子性
//解决volatile的原子性问题(synchronized)(AtomicInteger--->CAS)
class MyData2 {
AtomicInteger number = new AtomicInteger();
public void addPlus() {
number.addAndGet(1);
}
} public class Demo2 {
public static void main(String[] args) {
MyData2 myData2 = new MyData2();
for (int i = 1; i <= 20; i++) {
new Thread(() -> {
for (int j = 1; j <= 1000; j++) {
myData2.addPlus();
}
}, "AAA").start();
}
while (Thread.activeCount() > 2) {
Thread.yield();
}
System.out.println(myData2.number);
}
}
指令重排序
package com.google;
//指令重排序
public class Demo3 {
public static void main(String[] args) {
mySort();
}
public static void mySort(){
int x = 11;
int y = 12;
x = x + 5;
y = x * x;
System.out.println(x);
System.out.println(y);
}
}
ThreadMBean的更多相关文章
- Jconsole 监控tomcat
通过jconsole监控可以获取监控tomcat的相关的数据信息 如何通过代码来获取其中的线程和内存状况呢? 首先要配置好jconsole监控的相关配置,一搜基本就是那一个, 配置配不好的话接下来的工 ...
- Java应用调优指南之-工具篇
1. 土法调优两大件 先忆苦思甜,一般人在没有Profile工具的时候,调优的两大件,无非Heap Dump 与 Thread Dump. 1.1 Heap Dump jmap -dump:live, ...
- 获取本地的jvm信息,进行图形化展示
package test1; import java.lang.management.CompilationMXBean; import java.lang.management.GarbageCol ...
- 聊聊openjdk的BufferPoolMXBean
本文主要研究一下openjdk的BufferPoolMXBean PlatformManagedObjectjava.management/java/lang/management/PlatformM ...
- [JZOJ100043] 【NOIP2017提高A组模拟7.13】第K小数
Description 有两个正整数数列,元素个数分别为N和M.从两个数列中分别任取一个数相乘,这样一共可以得到N*M个数,询问这N*M个数中第K小数是多少. Input 输入文件包含三行. 第一行为 ...
- JVM 运行参数 & 代码监控
1.Java代码监控 JDK提供java.lang.management包, 其实就是基于JMX技术规范,提供一套完整的MBean,动态获取JVM的运行时数据,达到监控JVM性能的目的. packag ...
随机推荐
- vscode安装教程(含插件配置)
1.下载 下载地址:Download Visual Studio Code VS code,全称Visual Studio Code,是Microsoft(微软)在2015年4月30日发布的,编写现代 ...
- 后台管理系统带关闭的选项卡(多标签页)功能 适配bootstrap3和4 Bootstrap Hover Dropdown
眼看着是不是很熟悉,其实基本大部门后台管理系统都有这个功能,使用iframe实现展示标签页面. 主要功能:标签页点击,添加标签页,向左滚动标签页,向右滚动标签页,刷新当前标签页,关闭当前标签页,关闭其 ...
- Nacos入门
1.介绍 ①概要 官网:home (nacos.io) Nacos:Dynamic Naming and Configuration Service(动态命名和配置服务) 你可以看为:Eureka(注 ...
- C++练习12 字符串成员函数的使用
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 int main() 5 { 6 stri ...
- 题解 P5072 【[Ynoi2015] 盼君勿忘】
在太阳西斜的这个世界里,置身天上之森.等这场战争结束之后,不归之人与望眼欲穿的众人, 人人本着正义之名,长存不灭的过去.逐渐消逝的未来.我回来了,纵使日薄西山,即便看不到未来,此时此刻的光辉,盼君勿忘 ...
- because another server process exited abnormally and possibly corrupted shared memory
一.环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.1.1 二.症状 Red Hat 7.2操作系统部署HGDB 4.1.1后,日志经常出 ...
- npm+react linux 开荒
安装npm 从 https://nodejs.org/dist/ 找到下载包,并不是版本越高越好,得看项目的需要. 解压之后,将解压路径bin添加到PATH里. 完成后可配置npm源 npm inst ...
- MicroPython 之 PYBoard
一.MicroPython 简介 Python,是一种面向对象的解释型计算机程序设计语言,它是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNU General Public Licens ...
- Vue 组件VueComponent中_ _proto_ _ 原型对象的指向(指向Vue的原型对象 _ _proto_ _)
1.VueComponent.prototype.__proto__ === Vue.prototype 2.让组件实例对象(vc)可以访问到Vue原型上的属性.方法 图片如下: 案例: Vue.pr ...
- LCD1602液晶屏(续)
从前面的分析中知道,在HD44780控制芯片忙的时候,是不能对其进行写入操作的,所以在写入指令或数据时都需要进行判忙的操作,其时序如下图所示(8位数据模式). 从上图中可看到,当HD44780在执行内 ...