JAVA日記:[46]java中執行緒死鎖程式碼?

/*

多執行緒下的單例

//餓漢式

//懶漢式

多層判斷可解決懶漢式安全和效率的問題

*/

/*

雙鎖巢狀,產生死鎖

*/

class Test implements Runnable{

private boolean flag;

Test(boolean flag){

this.flag=flag;

}

public void run(){

if(flag){

while(true){

synchronized(MyLock.a){

System.out.println(Thread.currentThread().getName()+"if .....+a");

synchronized(MyLock.b){

System.out.println("if .....+b");

}

}

}

}

else{

while(true){

synchronized(MyLock.b){

System.out.println("else .....+b");

synchronized(MyLock.a){

System.out.println("else .....+a");

}

}

}

}

}

}

class MyLock{

public static final Object a = new Object();

public static final Object b = new Object();

}

class DeadLockTest{

public static void main(String args[]){

Test t= new Test(true);

Test w = new Test(false);

Thread t1 = new Thread(t);

Thread t2 = new Thread(w);

t1.start();

t2.start();

}

}

JAVA日記 (共50篇) 上一篇:執行緒同步 下一篇:java執行緒通訊案例

程式碼, 日記, 中線, 程死鎖,
相關問題答案