在Java中,線程有以下幾種狀態:
新建(New):線程對象被創建,但還沒有調用start()方法啟動線程。
運行(Runnable):線程被調度并執行。
阻塞(Blocked):線程被阻塞,等待某個條件的滿足,例如等待輸入/輸出完成、等待獲取鎖等。
等待(Waiting):線程進入等待狀態,等待其他線程的通知或中斷。可以通過調用wait()方法、join()方法或LockSupport.park()方法使線程進入等待狀態。
計時等待(Timed Waiting):線程進入計時等待狀態,等待一定的時間,時間到了會自動喚醒。可以通過調用sleep()方法、wait()方法的帶有超時參數的版本、join()方法的帶有超時參數的版本或LockSupport.parkNanos()、LockSupport.parkUntil()方法使線程進入計時等待狀態。
終止(Terminated):線程執行完畢,終止運行。