Java兩個執行緒輪換列印1 100內的奇數和偶數

2021-06-12 13:08:05 字數 575 閱讀 5445

問題:

兩個執行緒,乙個列印1-100的奇數,乙個列印1-100的偶數;要求:執行緒1列印5個之後,執行緒2開始列印,執行緒2列印5個之後,執行緒1再開始列印,以此迴圈。

public class test  catch (interruptedexception e) 

}// 當state=1時, 輪到執行緒1列印5次數字

for(int j=0; j<5; j++)

// 執行緒1列印完成後, 將state賦值為2, 表示接下來將輪到執行緒2列印

state = 2;

// notifyall()方法喚醒在t上wait的執行緒2, 同時執行緒1將退出同步**塊, 釋放t鎖

t.notifyall();}}

}}).start();

new thread(new runnable() catch (interruptedexception e)

}for(int j=0; j<5; j++)

state = 1;

t.notifyall();}}

}}).start();

}}

java兩個執行緒交替執行

一般來說執行緒鎖可以用 synchronized lock。這個題目的難點不在於同步塊,而在於怎麼樣設計這個兩個執行緒的交替實現。由於執行緒爭用cpu的隨機性,就需要a線,b執行緒執行,在b執行完一次進入等待之前喚醒a,如此往復,那麼這裡就要用上notify和wait了。author wangh.w...

兩個執行緒交替列印數字 Condition喚醒與等待

b 看到一道關於多執行緒題 如何實現兩個執行緒交替列印數字0 9?b 首先我們會想到要實現交替列印,那麼就要其中乙個執行的時候,另外乙個處於等待狀態,當該執行緒執行完的時候,喚醒另外乙個。如此執行就可實現。我們可以通過wait和notify對執行緒進行狀態控制,並且我們需要兩個監視器分別對這兩個執行...

兩個執行緒交替列印0 100的即偶數

兩個執行緒交替列印0 100的寄偶數,用wait和notify public class waitnotifyprintoddevenwait 1.拿到鎖,我們就列印 2。一旦列印完喚醒其他執行緒就休眠 static class turningrunner implements runnable c...