java線程機制
發布時間: 2024-12-25 14:56:24
Ⅰ java中線程有哪五個基本狀態它們之間如何讓轉化
Java中的每個線程均經歷五個不同的基本狀態:新生、就緒、運行、阻塞和死亡,這五個狀態組成了線程的生命周期。當通過new運算符與Thread類或其子類創建線程對象時,線程即處於新生狀態。
新生狀態到就緒狀態的轉變,通常是由調用start()方法來實現的。處於就緒狀態的線程一旦獲得CPU資源,便會被分配到運行狀態,並自動調用自身的run()方法開始執行任務。
運行狀態到阻塞狀態的變化,通常是由於線程在執行sleep()方法,或是等待I/O設備資源時,自願釋放CPU資源並暫時停止運行。此時,線程將進入阻塞狀態。
從阻塞狀態回到就緒狀態,需要等待兩個條件:一是睡眠時間已到,二是等待的I/O設備已空閑。當這兩個條件滿足時,線程將重新進入就緒隊列,等待下次CPU分配。
最後,線程狀態從運行狀態轉變為死亡狀態,主要有兩種情況:一種是線程完成了自己的任務;另一種則是線程被強制終止,例如通過執行stop()或destroy()方法來結束線程的運行。
總之,線程狀態的轉化是根據其執行情況及外部環境影響而動態變化的,這一過程反映了線程的生命周期管理機制。
Ⅱ java里,線程運行機制是不是當線程start()後,當執行完Runable()里的以後,才能調用wait()方法
新建的線程調用start()方法,將使線程的狀態從NEW轉換為runnable ,表示處於就緒狀態,此時線程僅僅是可以運行,但不一定在運行中。運行狀態running時,可以有sleep()方法,wait()方法等。
熱點內容