JAVA線程5 線程操作中的常用函數及區別

Sleep和Wait的區別

wait必須寫在synchronized的原因在於,當前線程需要獲取到鎖纔可以釋放鎖

當執行sleep()方法的時候,線程不會讓出鎖,等到sleep時間結束後,線程繼續執行

但是,執行wait()方法後,線程將鎖讓出,進入等待隊列,別的線程這時候會獲取鎖,執行

 

notify和notifyAll的區別

如果wait沒有設置等待時間,程序就會進入無限的等待狀態,這時候就需要別的線程去喚醒它

調用notifyAll或者notify方法可以達到效果

 

yield函數

但是yield對鎖的行爲不會有影響,即yield不會讓線程釋放鎖

運行第一次:B執行到5,就讓給A去執行了

第二次:A先執行,但是執行到5的時候,並沒有出讓他的CPU使用權,說明調度器忽略了暗示

 

interrupt函數

中斷線程

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章