* 死锁问题
* java同步机制 解决了 线程安全问题,但是同时也引发了死锁问题
*
* 死锁现象如何解决:没有办法解决,只能尽量的避免 死锁问题
*
* 死锁问题出现的根本原因:
* 1.存在两个或者两个以上的线程
* 2.多个线程 必须 共享两个或者 两个以上的资源
class DeadLockThread extends Thread{
public DeadLockThread(String name){
super(name);
}
@Override
public void run() {
if("tom".equals(this.getName())){
//tom占用了遥控器这个资源
synchronized ("遥控器") {
System.out.println(this.getName()+"取走了遥控器,准备取电池...");
synchronized ("电池") {
System.out.println(this.getName()+"取到了电池,跑到教室开起了空调...");
}
}
}else if("jerry".equals(this.getName())){
synchronized ("电池") {
System.out.println(this.getName()+"取到了电池,准备取遥控器...");
synchronized ("遥控器") {
System.out.println(this.getName()+"取到了遥控器,跑到教室开起了空调...");
}
}
}
}
}
public class Demo5 {
public static void main(String[] args) {
DeadLockThread t1 = new DeadLockThread("tom");
DeadLockThread t2 = new DeadLockThread("jerry");
t1.start();
t2.start();
}
}