Sleep和Wait的區別
wait必須寫在synchronized的原因在於,當前線程需要獲取到鎖纔可以釋放鎖
當執行sleep()方法的時候,線程不會讓出鎖,等到sleep時間結束後,線程繼續執行
但是,執行wait()方法後,線程將鎖讓出,進入等待隊列,別的線程這時候會獲取鎖,執行
notify和notifyAll的區別
如果wait沒有設置等待時間,程序就會進入無限的等待狀態,這時候就需要別的線程去喚醒它
調用notifyAll或者notify方法可以達到效果
yield函數
但是yield對鎖的行爲不會有影響,即yield不會讓線程釋放鎖
運行第一次:B執行到5,就讓給A去執行了
第二次:A先執行,但是執行到5的時候,並沒有出讓他的CPU使用權,說明調度器忽略了暗示
interrupt函數
中斷線程