您的位置:首页 > 编程语言 > Java开发

java死锁案例

2016-05-04 22:32 477 查看
package com.neutron.thread.demo;
/**
* 死锁案例
* 为什么会出现死锁呢?A持有B需要的锁,B持有A需要的锁,必须相互都需要,并且相互不释放,此时就会出现死锁问题
* @author zhanght
*
*/
public class DeadLock implements Runnable {

private boolean flag;
public DeadLock (boolean flag) {
this.flag = flag;
}
@Override
public void run() {
if (flag) {
while(true) {
synchronized(Lock.lock1) {
synchronized(Lock.lock2) {

}
}
}
} else {
while(true){
synchronized(Lock.lock2) {
synchronized(Lock.lock1) {

}
}
}
}
}

static class Lock {
static Object lock1 = new Object();
static Object lock2 = new Object();
}

public static void main(String[] args) {
new Thread(new DeadLock(true)).start();
new Thread(new DeadLock(false)).start();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  多线程