Java检测死锁案例
更新时间:2021年07月01日 10:02:54 作者:又起风了
这篇文章主要介绍了Java检测死锁案例,本文列举了导致死锁的程序,通过使用jconsole工具进行检测等,讲述了避免死锁的方法,需要的朋友可以参考下
导致死锁的程序
package com.study.train; import java.io.IOException; import java.lang.management.ManagementFactory; import java.lang.management.ThreadInfo; import java.lang.management.ThreadMXBean; import java.lang.reflect.Field; import java.util.*; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.FutureTask; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import static java.lang.Thread.yield; public class Main extends Thread{ private Object o1; private Object o2; Main(Object oa,Object ob,String name) { super(name); o1 = oa; o2 = ob; } @Override public void run() { synchronized (o1) { System.out.println("thread: "+Thread.currentThread().getName() + " get lock"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (o2) { System.out.println("two lock is get"); } } } public static void main(String[] args) throws InterruptedException { Object oj1 = new Object(); Object oj2 = new Object(); Main m1 = new Main(oj1,oj2,"thread1"); Main m2 = new Main(oj2,oj1,"thread2"); m1.start(); m2.start(); m1.join(); m2.join(); } }
1.jconsole工具检测
2. jsp+jstack
linux上可以先使用top | grep java,查找忙的线程pid,然后拿到该线程id进行分析,jstakc pid。
避免死锁的方法
- 1.尽量避免使用多个锁
- 2.如果一定要使用多个锁,可以考虑顺序获取锁,这样就类似破坏了环路等待条件
- 3.使用尝试获取锁的方法,如果无法获取,就将本身已经获取到的锁释放,类似破坏不可剥夺条件。
银行家算法属于检测是不是会存在死锁,这种做法实际上也是破坏环路等待条件的发生。
到此这篇关于Java检测死锁案例的文章就介绍到这了,更多相关Java死锁内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
初学者易上手的SSH-struts2 01环境搭建(图文教程)
下面小编就为大家带来一篇初学者易上手的SSH-struts2 01环境搭建(图文教程)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-10-10Spring IOC容器基于XML外部属性文件的Bean管理
这篇文章主要为大家介绍了Spring IOC容器Bean管理XML外部属性文件,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-05-05SpringBoot集成Redisson操作Redis的实现方法
Redisson是一个用于Java的Redis客户端,它提供了在分布式环境下操作Redis数据库的简单、高效的方式,本文主要介绍了SpringBoot集成Redisson操作Redis的实现方法,具有一定的参考价值,感兴趣的可以了解一下2024-03-03
最新评论