執行緒4 執行緒通訊

2022-07-05 14:24:08 字數 978 閱讀 5029

1、執行緒間的通訊主要靠三個方法

(1)wait(),使當前執行緒放棄cpu、物件鎖,重新排隊等待對共享資源的訪問

(2)notify(),喚醒等待執行緒中優先順序最高的執行緒,執行共享資源

(3)notifyall(),喚醒所有的等待執行緒

(4)這三個方法是object裡面的方法,而非thread方法,這些方法,只有在synchronized**塊或方法中才能使用

否則會報,illigalmonitorstateexception,異常

2、執行緒通訊例子,要注意的事項在注釋裡面,實現兩個執行緒輪流列印1到100的資料

package

com.thread.test;

//實現兩個執行緒輪流列印1到100的資料,synchronized所放位置有問題的例子

class printnumber implements

runnable

try catch

(interruptedexception e)

}}}//

下面鎖的位置沒有問題

class printnumbernew implements

runnable

else

try catch

(interruptedexception e) }}

}}/**

* 執行緒間的通訊主要靠三個方法 (1)wait(),使當前執行緒放棄cpu、物件鎖,重新排隊等待對共享資源的訪問

* (2)notify(),喚醒等待執行緒中優先順序最高的執行緒,執行共享資源 (3)notifyall(),喚醒所有的等待執行緒

* (4)這三個方法是object裡面的方法,而非thread方法,這些方法,只有在synchronized**塊或方法中才能使用

* 否則會報,illigalmonitorstateexception,異常 */

public

class

執行緒通訊

}

4 執行緒同步通訊

子執行緒迴圈10次,接著主線程迴圈100次,接著又回到子執行緒迴圈10次,接著再回到主線程又迴圈100,如此迴圈50,請寫出程式。package cn.itcast.thread public class traditionalcomuication start new thread new run...

Java多執行緒 4 執行緒間通訊

有這麼幾個方法,它們就定義在大家都非常熟悉的object類中,但是大家卻從來沒有呼叫過,並且也不知道是做什麼的,今天就由我帶著你們熟悉一下下面的這三個方法。它們都是定義在object類中的final方法,並且只能在synchronized上下文中呼叫。如果你現在還不明白,沒關係,下面我會用乙個 生產...

多執行緒 4執行緒間的通訊

wait和notify方法 簡單的生產者消費者 面試點1.wait和notify方法 當乙個物件呼叫了wait方法那麼它將阻塞當前執行緒,直到有另外乙個執行緒呼叫了當前物件的notify方法,被阻塞的執行緒才可能被喚醒。注意 若要呼叫這兩個方法必須先獲得物件的鎖,不讓會丟擲異常 public sta...