package test46;
/***
* 同步的弊端: A:效率低 B:容易产生死锁
* 死锁:两个或多个线程在争夺资源的过程中,发生的一种相互等待的现象。
*
* @author samsung
*
*/
public class DiedLockTest {
public static void main(String[] args) {
DiedLock d=new DiedLock(true);
DiedLock d1=new DiedLock(false);
d.start();
d1.start();
}
}
class MyLock {
//创建两把锁对象,static 是为了类名直接调用
public static final Object objA=new Object();
public static final Object objB=new Object();
}
class DiedLock extends Thread {
private boolean flag;
public DiedLock(boolean flag) {
this.flag=flag;
}
/* (non-Javadoc)
* @see java.lang.Thread#run()
*/
public void run() {
if(flag) {
synchronized(MyLock.objA) {
System.out.println("if objA");
synchronized (MyLock.objB) {
System.out.println("if objB");
}
}
}else {
synchronized(MyLock.objB) {
System.out.println("else objB");
synchronized (MyLock.objA) {
System.out.println("else objA");
}
}
}
}
}
死锁问题概述
最新推荐文章于 2023-01-27 21:04:32 发布