java小例子实现死锁
来源:互联网 发布:Windows匿名用户 编辑:程序博客网 时间:2024/05/18 01:24
死锁问题用通俗的语言来描述就是: 要进入一个房间要开2扇门,A用钥匙1开了第一扇门,但没有第二把钥匙,而B拥有钥匙2,但却无法打开第一扇门.
用java代码来实现:不同的线程使用同一个类的对象,因此要共享该MyThread类的空间.
public class DeadLock {
public static void main(String[] args) {
new DeadLock().begin();
}
public void begin() {
MyThread mt = new MyThread();
Thread t1 = new Thread(mt, "mt1");
Thread t2 = new Thread(mt, "mt2");
t1.start();
t2.start();
}
class MyThread implements Runnable {
private Object key1 = new Object();
private Object key2 = new Object();
private boolean flag = true;
@Override
public void run() {
if (flag) {
flag = false;
synchronized (key1) {
System.out.println(Thread.currentThread().getName() + ":key1");
synchronized (key2) {
System.out.println(Thread.currentThread().getName() + ":key2");
}
}
} else {
synchronized (key2) {
System.out.println(Thread.currentThread().getName() + ":key2");
synchronized (key1) {
System.out.println(Thread.currentThread().getName() + ":key1");
}
}
}
}
}
}
- java小例子实现死锁
- java 线程死锁的小例子
- java线程死锁例子
- Java死锁例子
- java死锁的例子
- java多线程死锁例子
- java死锁例子详解
- JAVA 死锁例子
- java产生死锁例子
- Java 死锁的例子
- Java死锁的例子
- Java死锁例子
- java死锁例子
- java 死锁例子
- Java 死锁例子
- Java多线程死锁的例子
- java死锁的一个例子
- Java多线程探究-死锁例子
- U3D Animator 中的正播倒播
- 关于Debug和Release之本质区别的讨论
- 笔记--语音信号的预加重
- 随诊医生2---检查版本更新
- Shadow Defender 1.4.0.561 简体中文注册码破解版(最好用的影子保护系统)
- java小例子实现死锁
- Xcode7 总结
- java基本名词
- Android L preview example
- 自同步 ZiSync For Windows 1.3 最新测试版(最好用的局域网同步软件)
- HADOOP基本操作命令
- testing
- 编译Room之各项操作
- OC学习Runtime之协议与分类