在Java中,新建線程的生命周期可以分為以下幾個階段:
新建(New):當你使用new Thread()
創建一個新的線程對象時,線程處于新建狀態。此時,線程尚未開始執行。
可運行(Runnable):當你調用線程對象的start()
方法時,線程進入可運行狀態。這意味著線程已經準備好執行,但可能正在等待CPU資源。線程調度器會根據線程的優先級來決定哪個線程應該獲得CPU資源。
阻塞(Blocked):當線程等待某個操作完成(例如等待鎖、等待I/O操作完成等)時,線程進入阻塞狀態。在這個狀態下,線程不會執行任何操作,直到其等待的操作完成。
等待/休眠(Waiting/Sleeping):線程可以使用wait()
、join()
或sleep()
方法進入等待/休眠狀態。在等待狀態下,線程會釋放CPU資源,直到其他線程調用其notify()
或notifyAll()
方法。在休眠狀態下,線程會暫停執行一段時間,然后自動恢復到可運行狀態。
死亡(Terminated):當線程完成其執行任務或因為異常而終止時,線程進入死亡狀態。一旦線程進入此狀態,它將無法再次啟動或恢復。
總結一下,Java新建線程的生命周期包括:新建 -> 可運行 -> 阻塞/等待/休眠 -> 死亡。