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 ...
随机推荐
- .Net Core后端架构实战【1-项目分层框架设计】
摘要:基于.NET Core 7.0WebApi后端架构实战[1-项目结构分层设计] 2023/02/05, ASP.NET Core 7.0, VS2022 引言 从实习到现在回想自己已经入行四年 ...
- CenterOS7上搭建RabbitMQ集群
1 保证多个主机之间能够互相访问 修改host , vi /etc/hosts 例如修改成下面的内容: 192.168.10.157 rabbitmq-1 192.168.10.159 rabbitm ...
- Blob 和 ArrayBuffer
Blob 和 ArrayBuffer Blob 对象表示的是二进制到文本的对象: ArrayBuffer 对象表示一段二进制数据,用来模拟内存里面的数据. Blob 关于 Blob 的详细内容:了解 ...
- 基于C++的OpenGL 02 之着色器
1. 概述 本文基于C++语言,描述OpenGL的着色器 环境搭建以及绘制流程可参考: 基于C++的OpenGL 01 之Hello Triangle - 当时明月在曾照彩云归 - 博客园 (cnbl ...
- 花10几元买ESP32-C3,体验一下MicroPython (和CircuitPython)
ESP32是近年很火的国产低成本MCU系列. 买了芯片ESP32-C3的模组安信可 ESP-C3-32S的开发板安信可 NodeMCU ESP-C3-32S-Kit .开发板很小,没有任何多余的东西, ...
- 3. 贪心思想(todo)
目录 1. 分配饼干 2. 不重叠区间个数 3. 投飞镖刺破气球 5. 买卖股票最大的收益 6. 买卖股票的最大收益 II 9. 修改一个数成为非递减数组 10. 子数组的最大和 11. 分隔字符串使 ...
- Python elasticsearch_dsl 报错及解决方法
Exception:maxClauseCount is set to 1024 原因:报错原因是Search限制一个bool查询中最多只能有1024个值或子查询,当超过1024时,会抛出异常. 解决办 ...
- lg9018题解
#include<bits/stdc++.h> using namespace std; #define N 2000010 #define int long long #define m ...
- [Unity]自定义地图编辑器(Scene视图下,EditorWindow的简单应用)
最近的游戏又很多关卡需要配置(XML保存),给策划写了个非常简单的编辑器,记录下+废话下 1:Editor下打开新窗口需要继承EditorWindow,然后使用获取窗口即可,注意放在Editor文件夹 ...
- springboot AOP配置
在Springboot中添加AOP配置分两步: 最近学习AOP ,记录一下,虽然很多名字不太清楚,但是问题不大 1:在pom.xml中添加AOP依赖 2:建一个AOP配置类 下面来看下代码是怎么实现的 ...