在面试过程中我们可能会遇到面试官当场让你实现一个死锁,有些同学可能背了很多概念,但是依然很难实现这个功能,下面我就简单介绍一个"套路'',可以让你快速实现一把属于你自己的死锁,而且基本上不会再忘记!!!
下面直接上代码.
@Slf4j
public class DeadLock {
/**
* 定义两把锁
*/
static Object lock1 =new Object();
static Object lock2 =new Object();
public static void main(String[] args) {
new Thread(()->{
synchronized (lock1){
log.debug("locked lock1");
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (lock2){
log.debug("locked lock2");
log.debug("get lock thread is t1");
}
}
},"t1").start();
new Thread(()->{
synchronized (lock2){
log.debug("locked lock2");
try {
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (lock1){
log.debug("locked lock1");
log.debug("get lock thread is t2");
}
}
},"t2").start();
}
}









