新聞中心
Java線程在其生命周期中可能會有以下幾種狀態(tài):

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,盤錦企業(yè)網(wǎng)站建設,盤錦品牌網(wǎng)站建設,網(wǎng)站定制,盤錦網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,盤錦網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
1、新建(New)
當創(chuàng)建一個Thread類的實例時,線程就進入了新建狀態(tài),此時,線程還沒有開始執(zhí)行,它僅僅是一個空的線程對象。
Thread thread = new Thread();
2、就緒(Runnable)
當調用線程的start()方法后,線程就進入了就緒狀態(tài),此時,線程已經(jīng)具備了運行的條件,等待系統(tǒng)分配CPU時間片,以便執(zhí)行線程的run()方法。
thread.start();
3、運行(Running)
當線程獲得CPU時間片后,就開始執(zhí)行run()方法,此時線程處于運行狀態(tài),在運行狀態(tài)的線程可以被搶占,也可以主動放棄CPU時間片,讓其他線程執(zhí)行。
4、阻塞(Blocked)
線程在運行過程中,可能會因為某些原因進入阻塞狀態(tài),常見的阻塞原因有:等待I/O操作完成、等待獲取鎖資源、等待其他線程喚醒等,當阻塞條件解除后,線程會重新進入就緒狀態(tài)。
5、等待(Waiting)
線程在運行過程中,可能會進入等待狀態(tài),等待狀態(tài)的線程需要等待其他線程執(zhí)行特定操作(如通知或中斷)后才能繼續(xù)執(zhí)行,常見的等待方法有:Object.wait()、Thread.join()、LockSupport.park()等。
6、計時等待(Timed Waiting)
線程在運行過程中,可能會進入計時等待狀態(tài),計時等待狀態(tài)的線程需要等待指定的時間后才能繼續(xù)執(zhí)行,常見的計時等待方法有:Thread.sleep()、Object.wait(long timeout)、Thread.join(long millis)等。
7、終止(Terminated)
線程執(zhí)行完run()方法后,或者因為異常而終止,線程就進入了終止狀態(tài),此時線程的生命周期結束,不再具備運行條件。
| 狀態(tài) | 描述 |
| 新建 | 線程對象已創(chuàng)建,但尚未啟動 |
| 就緒 | 線程已具備運行條件,等待系統(tǒng)分配CPU時間片 |
| 運行 | 線程正在執(zhí)行run()方法 |
| 阻塞 | 線程因等待I/O操作、獲取鎖資源等原因暫時停止運行 |
| 等待 | 線程需要等待其他線程執(zhí)行特定操作后才能繼續(xù)執(zhí)行 |
| 計時等待 | 線程需要等待指定時間后才能繼續(xù)執(zhí)行 |
| 終止 | 線程執(zhí)行完畢或因異常而終止 |
名稱欄目:java線程的幾種狀態(tài)
本文來源:http://fisionsoft.com.cn/article/cdojjsd.html


咨詢
建站咨詢
