java執行緒通訊面試題

2021-06-18 17:34:19 字數 993 閱讀 8321

子執行緒迴圈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 現在分別採用這兩種方法來解答這...