Java線程有以下幾種狀態:
新建狀態(New):當線程對象被創建時,它處于新建狀態。此時線程還沒有開始執行。
運行狀態(Runnable):當調用線程的start()方法后,線程進入運行狀態。此時線程正在執行任務。
阻塞狀態(Blocked):當線程正在執行任務時,如果遇到了某些阻塞的情況,比如等待輸入、等待鎖、等待其他線程等,線程將進入阻塞狀態。在阻塞狀態下,線程暫時停止執行,直到阻塞條件解除。
等待狀態(Waiting):線程在等待某個特定條件滿足時,可以調用wait()方法進入等待狀態。線程在等待狀態下,不會消耗CPU資源,直到被喚醒。
超時等待狀態(Timed Waiting):線程在等待某個特定條件滿足時,可以設置一個超時時間,調用sleep()方法進入超時等待狀態。線程在超時等待狀態下,不會消耗CPU資源,直到超時時間到達或被喚醒。
結束狀態(Terminated):線程執行完任務或被中斷后,線程進入結束狀態。此時線程無法再被執行。