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();
}
}
java死锁案例
最新推荐文章于 2022-11-28 12:16:35 发布