執行緒的通訊

2021-09-28 19:20:02 字數 412 閱讀 6174

鎖機制:包括互斥鎖、條件變數、讀寫鎖和自旋鎖

互斥鎖:當鎖被占用時試圖對其加鎖的執行緒都進入阻塞狀態,當鎖釋放時哪個等待執行緒能獲得該鎖取決於核心的排程。確保同一時間只能有乙個執行緒訪問共享資源

條件變數:以原子的方式阻塞程序,直到某個特定條件為真為止。條件變數始終與互斥鎖一起使用。

讀寫鎖:以寫模式加鎖而處於寫狀態時任何試圖加鎖的執行緒(不論是讀或寫)都阻塞,當以讀狀態模式加鎖而處於讀狀態時「讀」執行緒不阻塞,「寫」執行緒阻塞。讀模式共享,寫模式互斥。

自旋鎖:上鎖受阻時執行緒不阻塞而是在迴圈中輪詢檢視能否獲得該鎖,沒有執行緒的切換因而沒有切換開銷,不過對cpu的霸佔會導致cpu資源的浪費。

訊號量機制:無名執行緒訊號量和命名執行緒訊號量

訊號機制:類似程序間的訊號處理

執行緒的通訊

為什麼這些操作執行緒的方法要定義在object類中呢?因為這些方法在操作同步中線程時,都必須要標識他們所操作執行緒持有的鎖,只有同乙個鎖上的被等待執行緒,可以被同乙個鎖上的notify喚醒 不可以對不同鎖中的執行緒進行喚醒 也就是說,等待和喚醒必須是同乙個鎖 而鎖可以是任意物件,所以可以被任意物件呼...

執行緒的通訊

notify notifyall class number implements runnable catch interruptedexception e system.out.println thread.currentthread getname num num try catch inter...

java 執行緒 執行緒的通訊

執行緒通訊的三種方式 同步 while 輪詢方式 wait notify 方式 這裡講的同步是synchronized 關鍵字來實現執行緒間的通訊,我們用 來示範一下。class obj public synchronized void del public class demo4 start 執行...