package com.thread;
/**
* @Author madongxu
* @Date 2018-04-27
*/
public class DeadLock {
public static void main(String[] args) {
final DeadObject deadObject1 = new DeadObject(1);
final DeadObject deadObject2 = new DeadObject(0);
Thread t1 = new Thread(deadObject1);
Thread t2 = new Thread(deadObject2);
t1.start();
t2.start();
}
static class DeadObject implements Runnable{
private int flag ;
private static Object ob1 = new Object(), ob2 = new Object();
public DeadObject(int flag) {
this.flag = flag;
}
@Override
public void run() {
if(flag == 1){
synchronized (ob1){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (ob2){
System.out.println("当前线程:"+Thread.currentThread().getName()+"等待获得obj2");
}
}
}else{
synchronized (ob1){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (ob2){
System.out.println("当前线程:"+Thread.currentThread().getName()+"等待获得obj2");
}
}
}
}
}
}
java死锁demo
最新推荐文章于 2025-03-27 00:15:00 发布