Java中線程的狀態有以下幾種:
新建(New):當線程對象被創建后,但是還沒有調用start()方法啟動線程時,線程處于新建狀態。
運行(Runnable):當線程正在運行時,處于運行狀態。線程對象調用了start()方法之后,線程會進入到運行狀態。
阻塞(Blocked):當線程因為某些原因被暫停執行時,處于阻塞狀態。常見的情況有線程調用了sleep()方法、等待IO操作、等待獲取鎖等。
等待(Waiting):當線程等待其他線程執行特定操作時,處于等待狀態。線程可以通過調用wait()方法進入等待狀態。
超時等待(Timed Waiting):當線程在一定時間內等待其他線程執行特定操作時,處于超時等待狀態。線程可以通過調用sleep()方法等待一段時間或者調用帶有超時參數的wait()方法。
終止(Terminated):線程運行結束或者出現異常導致終止時,處于終止狀態。