實現兩個執行緒交替執行

2021-10-19 05:31:52 字數 650 閱讀 6978

比如執行緒1輸出0,執行緒2輸出0,執行緒1輸出1,執行緒2輸出1。

既然有先後順序,優先想到和順序有關的鎖,reentrantlock的公平鎖,等待時間最長的執行緒優先獲取鎖。

**如下:

public class alternatedemo

static class task implements runnable }}

}結果如下:

thread-0 : 0

thread-1 : 0

thread-0 : 1

thread-1 : 1

thread-0 : 2

thread-1 : 2

thread-0 : 3

thread-1 : 3

thread-0 : 4

thread-1 : 4

thread-0 : 5

thread-1 : 5

thread-0 : 6

thread-1 : 6

thread-0 : 7

thread-1 : 7

thread-0 : 8

thread-1 : 8

thread-0 : 9

thread-1 : 9

thread-0 : 10

thread-1 : 10

java兩個執行緒交替執行

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

兩個執行緒嚴格交替執行java實現

一道經典的執行緒併發的問題,執行緒1列印1 3 5 執行緒2列印2 4 6 兩個執行緒交替執行輸出1 2 3 4 5 6 首先基本的思路就是建立兩個執行緒,兩個執行緒共享object鎖,執行緒中執行完乙個迴圈之後呼叫先呼叫notify喚醒另乙個執行緒 notify只是將執行緒2從wait狀態喚醒,還...

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

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