java 线程中线程死锁
2011-11-14 11:40
183 查看
在使用线程的时候需要注意,防止线程死锁,这样整个程序就会处于锁定的等待状态而无法继续完成接下来的逻辑!
所以我们需要知道死锁是怎样产生的,这样我们在以后的开发中就可以知道如何避免死锁状况的发生。
下面是一个死锁的示例:
java code :
所以我们需要知道死锁是怎样产生的,这样我们在以后的开发中就可以知道如何避免死锁状况的发生。
下面是一个死锁的示例:
java code :
package test.javase.thread; public class TestDeadLock extends Thread { static Object o1 = new Object(), o2 = new Object(); int flag = 0; public void run() { if(flag == 0){ synchronized (o1) { System.out.println("tdl1锁定了o1"); try { this.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (o2){ System.out.println("tdl1---success"); } } } if(flag == 1){ synchronized (o2) { System.out.println("tdl2锁定了o2"); try { this.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (o1){ System.out.println("tdl2---success"); } } } } public static void main(String[] args) { TestDeadLock tdl1 = new TestDeadLock(); TestDeadLock tdl2 = new TestDeadLock(); tdl1.flag = 0; tdl2.flag = 1; tdl1.start(); tdl2.start(); } }
相关文章推荐
- 一个Java线程死锁的例子
- java 线程死锁的检测
- Java 线程与并发研究系列六(死锁)
- Java模拟排查线程死锁问题
- Java总结(十)—实现Runnable接口创建线程,线程安全同步,死锁(哲学家进餐问题),读写锁
- Java线程:并发协作-死锁
- Java线程:并发协作-死锁
- Java- 简单了解线程 同步线程和死锁(二)
- Java多线程,线程同步synchronized,线程死锁【线程池常规用法】多线程并发处理
- Java多线程:线程死锁
- Java 死锁诊断 -- 线程转储
- Java代码测试线程死锁 用jvisualvm监控
- 线程_死锁_生产者消费者模式(信号灯法)_任务调度JAVA180-182
- JAVA线程—同步与死锁
- Java复习之线程的同步与死锁
- java线程死锁和避免
- 黑马程序员--读写字节数组,随机读写流,集合IO的思维导图,多线程部分,单例设计模式,线程和进程的概念,Java中的线程的创建方式,线程的随机性,线程的状态图,多线程操作共享数据的安全性,死锁
- java知识系列之线程死锁
- Java线程:并发协作-死锁
- 《Java面试试题》写一个两个线程之间的死锁