退出方法
沒有設定 timeout 引數的 object.wait() 方法
object.notify() / object.notifyall()
沒有設定 timeout 引數的 thread.join() 方法
被呼叫的執行緒執行完畢
locksupport.park() 方法
locksupport.unpark(thread)
退出方法
thread.sleep() 方法
時間結束
設定了 timeout 引數的 object.wait() 方法
時間結束 / object.notify() / object.notifyall()
設定了 timeout 引數的 thread.join() 方法
時間結束 / 被呼叫的執行緒執行完畢
locksupport.parknanos() 方法
locksupport.unpark(thread)
locksupport.parkuntil() 方法
locksupport.unpark(thread)
執行緒狀態轉換
建立後尚未啟動。可能正在執行,也可能正在等待 cpu 時間片。包含了作業系統執行緒狀態中的 running 和 ready。等待獲取乙個排它鎖,如果其執行緒釋放了鎖就會結束此狀態。等待其它執行緒顯式地喚醒,否則不會被分配 cpu 時間片。進入方法 退出方法 沒有設定 timeout 引數的 obje...
執行緒狀態轉換
runnable waiting 執行緒用synchronized obj 獲取了物件鎖後 呼叫obj.wait 方法時,t 執行緒從runnable waiting 呼叫obj.notify obj.notifyall t.interrupt 時 競爭鎖成功,t 執行緒從waiting runna...
執行緒狀態轉換
test public void testthreadstate1 throws exception catch interruptedexception e system.out.println 1 thread.currentthread getname 的狀態是 thread.currentt...