使用兩個執行緒交替列印 0 100 的奇偶數

2021-10-09 07:32:32 字數 834 閱讀 8257

示例**

額外了解:使用 位運算 判斷奇偶數

/**

* 描述: 兩個執行緒交替列印0~100的奇偶數,用synchronized關鍵字實現

*/public

class

waitnotifyprintoddevensyn}}

}},"偶數").

start()

;new

thread

(new

runnable()

}}}}

,"奇數").

start()

;}}

缺點分析:

程式內部執行過程並不是平等輪流得到鎖,是不公平的,實際上可能某個執行緒長時間擁有鎖而有效的操作卻只有一次,這樣就會造成資源的浪費。

示例**

/**

* 描述: 兩個執行緒交替列印0~100的奇偶數,用wait和notify

*/public

class

waitnotifyprintoddevewait

//1. 拿到鎖,我們就列印

//2. 列印完,喚醒其他執行緒,自己就休眠

static

class

turningrunner

implements

runnable

catch

(interruptedexception e)}}

}}}}

優點分析:

使得每一步都有意義,避免了某個執行緒拿到鎖時卻不做操作造成浪費。

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

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

多執行緒之兩個執行緒交替列印的問題分析

場景一 在我們面試中經常會有這麼乙個場景,就是我們用執行緒a輸出 a 字元,有執行緒b輸出 b 字元,交替進行,要求a執行緒執行完任務輸出 a執行緒列印完了 b執行緒執行完任務輸入 b執行緒列印完了 最後有主線程輸出一句話 我列印完了 當你看到這個場景時,有點多執行緒經驗的人肯定會感覺很容易,然後有...

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

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