您好,登錄后才能下訂單哦!
來自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=396
GPS平臺、網(wǎng)站建設(shè)、軟件開發(fā)、系統(tǒng)運(yùn)維,找森大網(wǎng)絡(luò)科技!
http://cnsendnet.taobao.com
線程的5種狀態(tài)
1、新建狀態(tài)(New):新創(chuàng)建了一個(gè)線程對象。
2、就緒狀態(tài)(Runnable):線程對象創(chuàng)建后,其他線程調(diào)用了該對象的start()方法。該狀態(tài)的線程位于可運(yùn)行線程池中,變得可運(yùn)行,等待獲取CPU的使用權(quán)。
3、運(yùn)行狀態(tài)(Running):就緒狀態(tài)的線程獲取了CPU,執(zhí)行程序代碼。
4、阻塞狀態(tài)(Blocked):阻塞狀態(tài)是線程因?yàn)槟撤N原因放棄CPU使用權(quán),暫時(shí)停止運(yùn)行。直到線程進(jìn)入就緒狀態(tài),才有機(jī)會轉(zhuǎn)到運(yùn)行狀態(tài)。阻塞的情況分三種:
?。ㄒ唬⒌却枞哼\(yùn)行的線程執(zhí)行wait()方法,JVM會把該線程放入等待池中。
?。ǘ?、同步阻塞:運(yùn)行的線程在獲取對象的同步鎖時(shí),若該同步鎖被別的線程占用,則JVM會把該線程放入鎖池中。
?。ㄈ⑵渌枞哼\(yùn)行的線程執(zhí)行sleep()或join()方法,或者發(fā)出了I/O請求時(shí),JVM會把該線程置為阻塞狀態(tài)。當(dāng)sleep()狀態(tài)超時(shí)、join()等待線程終止或者超時(shí)、或者I/O處理完畢時(shí),線程重新轉(zhuǎn)入就緒狀態(tài)。
5、死亡狀態(tài)(Dead):線程執(zhí)行完了或者因異常退出了run()方法,該線程結(jié)束生命周期。
阻塞:線程A等待線程B的數(shù)據(jù),線程B等待線程A的數(shù)據(jù),互相等待,就會陷入阻塞,這也是一種線程阻塞。
阻塞狀態(tài)是正在運(yùn)行的線程遇到某個(gè)特殊情況。例如,延遲、掛起、等待I/O操作完成等。 進(jìn)入阻塞狀態(tài)的線程讓出CPU,并暫時(shí)停止自己的執(zhí)行。線程進(jìn)入阻塞狀態(tài)后,就一直等待,直到引起阻塞的原因被消除,線程又轉(zhuǎn)入就緒狀態(tài),重新進(jìn)入就緒隊(duì)列排隊(duì)。
來自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=396
GPS平臺、網(wǎng)站建設(shè)、軟件開發(fā)、系統(tǒng)運(yùn)維,找森大網(wǎng)絡(luò)科技!
http://cnsendnet.taobao.com
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。