java多執行緒基礎篇(wait、notify、join、sleep、yeild方法)

藍色土耳其18發表於2020-11-04

1.wait

必須在同步程式碼塊中使用

會把當前的鎖釋放,然後讓出CPU,進入等待狀態

2.notify

必須在同步程式碼塊中使用

會喚醒一個處於等待該 物件鎖 的執行緒,然後繼續往下執行

notify不會立刻釋放資源,而是讓notify所在的同步塊執行執行完畢,

退出物件鎖 鎖住的區域後再釋放鎖

 

3.join

  join方法的作用是等待執行緒物件銷燬

當前執行緒a(currentThread)進行無限期的阻塞,等待呼叫執行緒b(呼叫join的執行緒)銷燬後繼續執行a執行緒

特點:內部使用wait方法進行等待,所以會釋放鎖

4.sleep

特點:不釋放鎖

 

5.yeild

  讓步。讓當前執行緒由“執行狀態”進入到“就緒狀態”

 

相關文章