java制造死锁
来源:互联网 发布:mac射手影音字幕位置 编辑:程序博客网 时间:2024/04/29 20:56
package suo;public class DeadLockTest implements Runnable{ private int flag; static Object o1 = new Object(), o2 = new Object(); //静态的对象,被DeadLockTest的所有实例对象所公用 public void run(){ System.out.println(flag); if(flag == 0){ synchronized(o1){ try{ Thread.sleep(500); } catch(Exception e){ e.printStackTrace(); } synchronized(o2){ } } } if(flag == 1){ synchronized(o2){ try{ Thread.sleep(500); } catch(Exception e){ e.printStackTrace(); } synchronized(o1){ } } } } public static void main(String[] args){ DeadLockTest test1 = new DeadLockTest(); DeadLockTest test2 = new DeadLockTest(); test1.flag = 1; test2.flag = 0; Thread thread1 = new Thread(test1); Thread thread2 = new Thread(test2); thread1.start(); thread2.start(); }}/*解释:在main方法中,实例化了两个实现了Runnable接口的DeadLockTest对象test1和test2,test1的flag等于1,所以在thread1线程执行的时候执行的是run()方法后半部分的代码,test2的flag等于2,所以在thread2线程启动的时候执行的是run()方法前半部分的代码,此时,出现了下列现象:thread1线程占有了o1对象并等待o2对象,而thread2线程占有了o2对象并等待o1对象,而o1和o2又被这俩个线程所共享,所以就出现了死锁的问题了。*/
0 0
- java制造死锁
- java人为制造溢出
- java死锁,避免死锁
- Java.死锁
- Java死锁
- java死锁
- java ----死锁
- Java死锁
- java 死锁
- Java - 死锁
- java 死锁
- JAVA 死锁
- java死锁
- java死锁
- Java死锁
- Java - 死锁
- Java 死锁
- java 死锁
- linux安装eclipse出现exit code =13时的解决办法
- Java生成随机数工具类,进制之间的转换工具类,获取指定时间,时间格式转换工具类
- php之错误日志(error log)
- Linux内核编译,启动带linux内核的模拟器。
- 安装Notepad++
- java制造死锁
- leecode 解题总结:383. Ransom Note
- 可变数组 移除数据项
- spring boot
- leetCode练习(242)
- mysql-视图基础学习
- 2. Add Two Numbers
- 教你初步了解红黑树
- 使用Memcached实现Session共享