一、死锁
死锁:
1.有多把锁
2.有多个线程
3.有同步代码块嵌套
在多线程中,使用了多把锁,造成线程之间的相互等待,程序不让往下走了
【注意:应尽量避免死锁,这里只是了解一下】
代码演示:
// 线程1:锁A、锁B、 执行线程
new Thread(new Runnable() {
@Override
public void run () {
synchronized ("锁A"){
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程1:拿到了锁A,准备拿锁B");
synchronized ("锁B"){
System.out.println("线程1:拿到了锁A 和 锁B");
}
}
}
},"线程1").start();