同步線程鎖 死鎖

public class Test {


public static void main(String[] args) {
DieLock d = new DieLock(true);
DieLock d1 = new DieLock(false);
Thread t = new Thread(d); // 調用runnable子類引用對象爲傳遞.
Thread t1 = new Thread(d1);
t.start();
t1.start();

}

}

class DieLock implements Runnable {
private boolean flang;

// 構造函數boolean類型參數
public DieLock(boolean flang) {
this.flang = flang;
}

// 覆蓋run方法
public void run() {
if (flang) {
while (true) {
synchronized (Lock.LOCK_A) {
System.out.println("if LOCK_A");
synchronized (Lock.LOCK_B) {
System.out.println("if LOCK_B");
}
}
}
} else {
while (true) {
synchronized (Lock.LOCK_B) {
System.out.println("else LOCK_B");
synchronized (Lock.LOCK_A) {
System.out.println("else LOCK_A");
}
}
}
}
}
}


public class Lock {
public static final Object LOCK_A = new Object();
public static final Object LOCK_B = new Object();
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章