java中死锁的案例
来源:互联网 发布:虎嗅网源码下载 编辑:程序博客网 时间:2024/05/20 23:04
//小明和小丽两人争夺水壶和水杯喝水。
//最后各执水壶或水杯,都喝不到水,造成死锁。
public class DeadLock { //水壶 private Object object1=new Object(); //水杯 private Object object2=new Object(); public static void main(String[] args) { new DeadLock().test(); } private void test() { // TODO Auto-generated method stub //people 1 Thread th1= new Thread(new Dead(0),"小明"); //people 2 Thread th2=new Thread(new Dead(1),"小丽"); th1.start(); th2.start(); try { Thread.sleep(6000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 死锁类 */ class Dead implements Runnable{ private int tag=0; public Dead(int _tag) { tag=_tag; // TODO Auto-generated constructor stub } @Override public void run() { // TODO Auto-generated method stub if(tag==0){ //尝试着拿水壶 synchronized (object1) { System.out.println(Thread.currentThread().getName()+"拿到了水壶"); try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //尝试着去拿水杯 System.out.println(Thread.currentThread().getName()+"尝试着拿水杯"); synchronized (object2) { System.out.println(Thread.currentThread().getName()+"也拿到了水杯"); } } }else{ //尝试着拿水杯 synchronized (object2) { System.out.println(Thread.currentThread().getName()+"拿到了水杯"); try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //尝试着去拿水壶 System.out.println(Thread.currentThread().getName()+"尝试着拿水壶"); synchronized (object1) { System.out.println(Thread.currentThread().getName()+"也拿到了水壶"); } } } } }}
1 0
- java中死锁的案例
- 多线程中死锁的案例
- java中线程的同步和死锁案例分析
- java-写一个死锁的案例
- java死锁案例
- java死锁案例
- 死锁的案例
- java中死锁的问题
- Java中死锁的检测
- java中线程的死锁
- 最简单的多线程死锁案例代码(Java语言)
- java中死锁程序和解决死锁的办法
- Java多线程:实现一个死锁案例
- 死锁案例
- 2016-08-19-java-关于线程的死锁的案例分析:生产者消费者问题
- 案例:死锁引起的应用挂起
- 真实案例:使用Java Thread Dump分析ReadWriteLock导致的死锁问题
- java死锁的例子
- Spring mvc和SSH对比
- c++ 继承(详细)
- xUtils简介
- J2EE轻量级框架-3.29学习心得
- 创建和应用母版页
- java中死锁的案例
- 【C/C++】引用和指针的区别
- iOS开发-从iTunes中下载手机应用,并获取应用图标
- javascript自定义右键菜单,js自定义右键删除——和派孔明
- 网易新闻部分框架
- MongoDB初探--安装和启动
- windows编程笔记(win32编程)以及其在游戏开发中的作用
- python运算符优先级
- 338. Counting Bits