Java代码测试线程死锁 用jvisualvm监控
来源:互联网 发布:淘宝账号注册不了 编辑:程序博客网 时间:2024/05/22 03:07
测试线程死锁,运行以下代码:
public class Test1 {private static Object o1 = new Object();private static Object o2 = new Object();public static void main(String[] args) {for( int i = 0;i<100;i++){new Thread(new Runnable() {@Overridepublic void run() {synchronized (o1) {synchronized (o2) {System.out.println("am o1");}}}}).start();new Thread(new Runnable() {@Overridepublic void run() {synchronized (o2) {synchronized (o1) {System.out.println("am o2");}}}}).start();}}}代码中线程1先申请obj1,再申请obj2;线程2先申请obj2,再申请obj1。如果执行次数多了就会出现死锁,我们依然来看线程的监控台:
在jdk中 C:\Program Files\Java\jdk1.8.0_101\bin目录下有jvisualvm.exe工具
运行以上代码 查看线程,如下图所示:
选择一个线程进行dump查看;可以查看出死锁的具体原因,可利用此工具查看程序中那些线程死锁,从而更好的排查错误。
阅读全文
1 0
- Java代码测试线程死锁 用jvisualvm监控
- 使用Jvisualvm监控线程死锁案例分析
- java 线程死锁代码
- jvisualvm监控java程序
- jvisualvm java性能监控
- Java多线程--线程的监控工具之jstack,jvisualvm
- 通过jvisualvm查看产生死锁线程
- java代码--线程的死锁
- jvisualvm远程监控java虚拟机
- java-jvisualvm远程监控tomcat
- 用JVISUALVM远程监控JAVA程序的性能
- 用JvisualVM监控prunsrv服务
- java并发-线程饥饿死锁测试
- jmx配合jvisualvm远程监控Java程序
- 用java代码解释死锁
- java面试题----用java代码写死锁(线程join写法)
- java代码线程压力测试
- Java多线程线程、同步代码块、同步函数、死锁
- Safecracker
- Linux磁盘与文件系统管理
- maven 创建javaweb项目
- 前端必须掌握30个CSS3选择器
- 正则表达式
- Java代码测试线程死锁 用jvisualvm监控
- JS实现时间格式的各种转化记录
- macOS 修改终端Terminal的颜色设置
- Java语言高编——IO流(文件操作)
- 计算一定范围内素数个数的算法
- 前端资源大全
- office转pdf在vs调试成功,传到iis上转化不出来
- nginx实现高并发的原理
- 20个非常有用的Java程序片段