1. 程式人生 > >執行緒的狀態型別和相互轉換

執行緒的狀態型別和相互轉換

  • 鎖: 最主要是sleep()方法沒有釋放鎖,而wait()方法釋放了鎖,使得其他執行緒可以使用同步控制塊或者方法。sleep()不出讓系統資源;wait()是進入執行緒等待池等待,出讓系統資源,其他執行緒可以佔用CPU。一般wait()不會加時間限制,因為如果wait()執行緒的執行資源不夠,再出來也沒用,要等待其他執行緒呼叫notify/notifyAll喚醒等待池中的所有執行緒,才會進入就緒佇列等待OS分配系統資源。sleep(milliseconds)可以用時間指定使它自動喚醒過來,如果時間不到只能呼叫interrupt()強行打斷。Thread.sleep(0)的作用是“觸發作業系統立刻重新進行一次CPU競爭”。