Java線程有以下幾種狀態:
- 新建(New):當線程對象被創建但還沒有調用start()方法時,線程處于新建狀態。
- 運行(Runnable):當線程調用start()方法后,線程處于運行狀態,可以執行任務。
- 阻塞(Blocked):線程在等待獲取鎖時會進入阻塞狀態。
- 等待(Waiting):線程調用Object.wait()、Thread.join()或LockSupport.park()方法后進入等待狀態。
- 計時等待(Timed Waiting):線程調用Thread.sleep()、Object.wait(long)、Thread.join(long)或LockSupport.parkNanos()方法后進入計時等待狀態。
- 終止(Terminated):線程執行完任務或者發生異常導致線程終止時,線程進入終止狀態。
這些狀態可以通過Thread類的getState()方法獲取。