java多线程 模拟死锁程序
2013-03-29 10:52
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的多线程程序进程和线程的概念,实现多线程的两种方式,线程同步的原理,线程的死锁,运用wait和notify来实现producer - consumer关系,线程终止的两种情况。
- java多线程学习之死锁的模拟和避免
- Java代码模拟死锁 多线程
- Java多线程模拟售票程序,及线程安全问题
- java 解决死锁(程序模拟)
- JAVA学习第六十课 — UDP协议 &基于多线程模拟简单的QQ聊天程序
- 使用java程序模拟页面发送http的post请求
- 【Java多线程编程】选号程序
- [Java 09 多线程] 线程是指一个进程在执行过程中可以产生更小的程序单元
- 用Java runnable接口模拟多窗口(线程)销售同类型票的并行程序
- java多线程模拟抢票
- JAVA基础再回首(二十四)——多线程的概述、实现方式、线程控制、生命周期、多线程程序练习、安全问题的解决
- java多线程之死锁
- java学习日记(6)____多线程的安全问题与死锁的产生
- JAVA多线程(二)竞态条件、死锁及同步机制
- Java 程序死锁问题原理及解决方案(来源IBM开发者论坛本文作者文章)
- 使用java程序模拟页面发送http的post请求
- Java多线程--死锁
- [编写高质量代码:改善java程序的151个建议]建议80 多线程使用Vector或hashTable