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 ...
随机推荐
- dvwa靶场
brute force LOW 输入账号密码直接抓包就行 接着ctrl+i传输到intruder模块中 为需要爆破的加上 §,不爆破的不加 选择攻击类型为Cluster bomb,选择username ...
- 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。(C# EXCEL导入demo)
1. 安装office包 https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=13255 2.需要在相应的IIS应用程序池启用 ...
- P8421 [THUPC2022 决赛] rsraogps
\(\text{Solution}\) 肯定扫描线在考虑维护什么东西,假设 \(r\) 右移时可以暴力得到所有新值,发现需要维护区间历史版本和以及区间当前值之和 这三个操作对于一个数来说变化次数都是 ...
- Shapefile导入Oracle
1. 概述 Shapefile是常用的空间数据文件格式,Oracle数据库是常用的关系型数据库 Oracle数据库包含空间数据库,可以在Oracle中进行空间数据的存储,更详细的信息可参考: 空间数据 ...
- SAP 删除始终使用选定的格式
修改默认格式 se38 SALV_BS_ADMIN_MAINTAIN
- Linux查询CPU,内存,硬盘使用率以及网卡流量指令
Linux查询CPU,内存,硬盘使用率以及网卡流量指令 1.获取cpu使用率 //cpu `top -b -n1 | fgrep "Cpu" | awk '{print 100-$ ...
- javascript的属性描述符
什么是属性描述对象(attributes object)? 顾名思义,就是用来描述对象属性的对象.javascript内部提供了一个数据结构,用来描述对象的属性以及控制属性的行为. 比如该对象的某属性 ...
- [UnityShader]说厌了的遮挡显示
首先是效果 这个其实有相当多的地方在说了,我就不嚼舌根了 大概原理:一个Shader两个Pass,第一个Pass不管深度,都渲染,但是不写入深度,第二个Pass几乎没有改动,因为后执行,会覆盖掉第一个 ...
- python GIL解释器
1.GIL是什么? GIL全称Global Interpreter Lock,即全局解释器锁. 作用就是,限制多线程同时执行,保证同一时间内只有一个线程在执行. GIL并不是Python的特性,它是在 ...
- Javascript高级程序设计(000)
该分类下为学习Javascript高级程序设计的笔记,希望自己可以坚持学习,努力学习!加油! 一.组织结构 第 1 章,介绍 JavaScript 的起源:从哪里来,如何发展,以及现今的状况.这一章会 ...