自定义一个死锁
来源:互联网 发布:本田凌派maf标准数据 编辑:程序博客网 时间:2024/06/14 02:43
在锁o1释放之前需要等待锁o2的释放
在锁o2释放之前需要等待锁o1的释放.
死在无限等待对方释放锁的循环中....
这只是一个简单的死锁:A需要B,B需要A
复杂一些的有:A需要B, B需要C, C需要A.....
public class Demo6 implements Runnable {
public int flag = 1;
private static Object o1 = new Object(), o2 = new Object();
@Override
public void run() {
System.out.println(flag);
if (flag == 0) {
synchronized (o1) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
synchronized (o2) {
System.out.println(123);
}
}
}
if (flag == 1) {
synchronized (o2) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
synchronized (o1) {
System.out.println(321);
}
}
}
}
public static void main(String[] args) {
Demo6 demo = new Demo6();
demo.flag = 0;
Demo6 demo2 = new Demo6();
demo2.flag = 1;
new Thread(demo).start();
new Thread(demo2).start();
}
}
- 自定义一个死锁
- 写一个死锁线程
- 一个死锁的问题
- 一个死锁程序
- java写一个死锁
- 写一个死锁程序
- 一个简单的死锁
- 一个死锁程序
- 一个死锁的例子
- 如何构建一个死锁?
- 编写一个死锁实例
- 写出一个死锁程序!!
- java实现一个死锁
- 一个无聊的死锁
- 自己写一个死锁
- 一个数据库死锁问题
- 关于死锁,并用Java实现一个死锁
- 写一个死锁例子,及解决死锁
- 让我们用mavon-editor开发博客系统
- PAT乙级1059. C语言竞赛(20)
- Ubuntu 16.04下安装VMware Tools(三行命令搞定)
- CC2530裸机编程-定时器1
- 漫无目的的来到北京(求职路一)
- 自定义一个死锁
- 算法 第四版 动画 2.1.17
- 栈溢出笔记1.1 函数调用过程
- SVN的命令行操作、图形界面TortoiseSVN操作
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
- userInfo和NSValue
- 新疆网赛G题(KMP+树状数组)
- 平衡二叉树 构造方法
- ListView