Java線程的生命周期有以下幾種狀態:
新建(New):當線程對象被創建時,該線程處于新建狀態。
就緒(Runnable):當線程對象調用 start()
方法后,該線程處于就緒狀態,等待獲取CPU時間片執行。
運行(Running):當線程獲得CPU時間片后,該線程處于運行狀態,執行線程的 run()
方法中的代碼。
阻塞(Blocked):在某些情況下,線程可能因為等待某個資源或者鎖等原因而暫時停止執行,此時線程進入阻塞狀態。
等待(Waiting):線程處于等待狀態,可能因為調用了 wait()
方法,或者調用了 join()
方法加入了其他線程的等待隊列。
超時等待(Timed Waiting):線程處于超時等待狀態,可能因為調用了 sleep()
方法,或者調用了 wait(long timeout)
方法指定了等待時間。
終止(Terminated):當線程的 run()
方法執行完成,或者線程被中斷時,該線程處于終止狀態。