子執行緒迴圈10次,接著主線程迴圈100,接著又回到子執行緒迴圈10次,接著再回到主線程又迴圈100,如此迴圈50次,請寫出程式。
**如下:
/*
*子執行緒迴圈5次,接著主線程迴圈10次,接著又回到子執行緒迴圈5次,然後再到主線程迴圈10次,如此反覆執行5次;
*synchronized解決執行緒互斥
*/public class threadsyn
}}).start();
// 主線程,mian方法本身就是乙個主線程
for (int i = 1; i <= 5; i++) }}
class loop catch (interruptedexception e)
} for (int j = 1; j <= 5; j++)
system.out.println("*******");
iswait = false;
this.notify();// 喚醒主線程
system.out.println(" 喚醒主線程");
} public synchronized void mian(int i) catch (interruptedexception e)
} for (int j = 1; j <= 10; j++)
system.out.println("^^^^^^^^^^");
iswait = true;
this.notify();// 喚醒子執行緒
system.out.println(" 喚醒子執行緒");
}}
這裡有2個注釋不是很準,就是this.notify();這個方法我有點模糊,第乙個notify按理來說應該是喚醒子執行緒,因為this在sun()方法裡面,所以我這樣認為的,不過this是代表當前物件,也就是loop這個類,這裡我就更暈了,loop又不是乙個執行緒,this.notify是咋回事呢,反正我這樣寫出來了,notify不清楚也沒辦法了,只能以後再慢慢弄懂了 Java 執行緒面試題
子執行緒迴圈10次,接著主線程迴圈100次,接著又回到子執行緒迴圈10次,接著再回到主線程又迴圈100次,如此迴圈50次,請寫出程式。互斥實現了,就是交替執行弄不出來。子執行緒迴圈10次,接著主線程迴圈100次,接著又回到子執行緒迴圈10次,接著再回到主線程又迴圈100次,如此迴圈50次,請寫出程式...
java執行緒面試題1
子執行緒迴圈 10次,接著主線程迴圈 100,接著又回到子執行緒迴圈 10次,接著再回到主線程又迴圈 100,如此迴圈 50次,請寫出程式。備註 不可能一上來就寫出上面的完整 最初寫出來的 如下,問題在於兩個執行緒的 要參照同乙個變數,即這兩個執行緒的 要共享資料,所以,把這兩個執行緒的執行 搬到同...
java多執行緒面試題
有三個執行緒id分別是a b c,請有多線程式設計實現,在螢幕上迴圈列印10次abcabc 由於執行緒執行的不確定性,要保證這樣有序的輸出,必須控制好多執行緒的同步。執行緒同步有兩種基本方法 1 synchronized 2 wait,notify,notifyall 現在分別採用這兩種方法來解答這...