java多线程 模拟死锁程序
2013-03-29 13:38
447 查看
public class TestDeadLock implements Runnable{ public int flag = 1; public static Object o1 = new Object(); public static Object o2 = new Object(); public static void main(String[] args) { TestDeadLock td1 = new TestDeadLock(); TestDeadLock td2 = new TestDeadLock(); td1.flag=1; td2.flag=0; Thread t1 = new Thread(td1); Thread t2 = new Thread(td2); t1.start(); t2.start(); } @Override public void run() { System.out.println("flag:"+flag); if(flag==1){ synchronized(o1){ try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } synchronized(o2){ System.out.println("1"); } } } else if(flag == 0){ synchronized(o2){ try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } synchronized(o1){ System.out.println("0"); } } } } }
相关文章推荐
- java多线程 模拟死锁程序
- Java多线程模拟售票程序,及线程安全问题
- java 解决死锁(程序模拟)
- JAVA学习第六十课 — UDP协议 &基于多线程模拟简单的QQ聊天程序
- Java第七课 Java的多线程程序进程和线程的概念,实现多线程的两种方式,线程同步的原理,线程的死锁,运用wait和notify来实现producer - consumer关系,线程终止的两种情况。
- java多线程学习之死锁的模拟和避免
- Java代码模拟死锁 多线程
- 在Java程序中处理数据库超时与死锁
- Java多线程死锁问题测试
- Java多线程-死锁的出现和解决
- 使用java程序模拟页面发送http的post请求
- Java多线程 执行程序(1)
- 别人的Morgan Stanley面试,注重基础,java core、多线程、设计模式、设计程序。。。
- Java 多线程 死锁 隐性死锁 数据竞争 恶性数据竞争 错误解决深入分析 全方向举例
- Java语言多线程程序模型研究
- Java sdut acm 1133 CC++经典程序训练3---模拟计算器
- 抽奖小程序——java中的多线程
- 在Java程序中处理数据库超时与死锁
- Java 多线程 (PART XIII) 死锁和检测死锁
- 黑马程序员-19-java基础-多线程(2)-死锁与线程间通信(synchronized与Lock的区别及各自用法)