java多线程之线程死锁
2017-06-08 18:27
375 查看
恶魔之java多线程之线程死锁-简单易操作
代码示例
MyTest.javapackage myUtil.myUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 线程死锁 * 四大条件:1线程互斥 * 2占用自然且不释放资源 * 3不强行剥夺资源 * 4资源的获取要首尾衔接 */ public class MyTest{ private Object object1; private Object object2; public MyTest() { object1 = 1; object2 = 2; } private static final Logger logger = LoggerFactory .getLogger(MyTest.class); public static void main(String[] argv){ MyTest myTest = new MyTest(); new Thread(myTest.new Test1()).start(); new Thread(myTest.new Test2()).start(); } class Test1 implements Runnable{ @Override public void run() { synchronized (object1) { logger.info("Test1获取资源"+object1); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (object2) { logger.info("Test1获取资源"+object2); } } } } class Test2 implements Runnable{ @Override public void run() { synchronized (object2) { logger.info("Test2获取资源"+object2); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (object1) { 4000 logger.info("Test2获取资源"+object1); } } } } }
相关文章推荐
- Java多线程____线程死锁例子
- Java多线程之死锁与线程间通信简单案例
- Java多线程:线程死锁
- 程序、进程、线程、同步与死锁
- 多线程——线程死锁
- Java笔记(4)-线程、Thread、Runable、开子线程、线程运行状态、线程同步、线程死锁
- Java线程(初级)——synchronized、死锁、wait、notify详解
- Java多线程开发系列之三:线程这一辈子(线程的生命周期)
- 谁在死锁Mutex——用Windbg查找Mutex死锁所有者线程
- Java多线程之线程的同步与锁
- 线程概念及死锁的理解
- Java多线程--线程的同步与通信
- Windows线程间SendMessage产生的死锁问题
- Java虚拟机性能管理神器 - VisualVM(9) 排查JAVA应用程序线程死锁
- 线程死锁
- DllMain中不当操作导致死锁问题的分析——线程中调用GetModuleFileName、GetModuleHandle等导致死锁
- 锁无关的(Lock-Free)数据结构——在避免死锁的同时确保线程继续
- 锁无关的(Lock-Free)数据结构——在避免死锁的同时确保线程继续
- java多线程(一):线程的建立及简单操作
- Java多线程--让主线程等待所有子线程执行完毕