java線程狀態(tài):1、新建狀態(tài)New;2、就緒狀態(tài)Runnable;3、運(yùn)行狀態(tài)Running;4、阻塞狀態(tài)Blocked;5、死亡狀態(tài)Dead。
本文操作環(huán)境:windows7系統(tǒng)、Dell G3電腦、Java8.0版。
java線程狀態(tài):
1. 新建狀態(tài)(New): 線程對(duì)象被創(chuàng)建后,就進(jìn)入了新建狀態(tài)。
例如,Thread thread = new Thread()。
立即學(xué)習(xí)“Java免費(fèi)學(xué)習(xí)筆記(深入)”;
2. 就緒狀態(tài)(Runnable): 也被稱為“可執(zhí)行狀態(tài)”。線程對(duì)象被創(chuàng)建后,其它線程調(diào)用了該對(duì)象的start()方法,從而來(lái)啟動(dòng)該線程。例如,thread.start()。處于就緒狀態(tài)的線程,隨時(shí)可能被CPU調(diào)度執(zhí)行。
3. 運(yùn)行狀態(tài)(Running): 線程獲取CPU權(quán)限進(jìn)行執(zhí)行。需要注意的是,線程只能從就緒狀態(tài)進(jìn)入到運(yùn)行狀態(tài)。
4. 阻塞狀態(tài)(Blocked): 阻塞狀態(tài)是線程因?yàn)槟撤N原因放棄CPU使用權(quán),暫時(shí)停止運(yùn)行。直到線程進(jìn)入就緒狀態(tài),才有機(jī)會(huì)轉(zhuǎn)到運(yùn)行狀態(tài)。阻塞的情況分三種:
(01) 等待阻塞 -- 通過(guò)調(diào)用線程的wait()方法,讓線程等待某工作的完成。
(02) 同步阻塞 -- 線程在獲取synchronized同步鎖失敗(因?yàn)殒i被其它線程所占用),它會(huì)進(jìn)入同步阻塞狀態(tài)。
(03) 其他阻塞 -- 通過(guò)調(diào)用線程的sleep()或join()或發(fā)出了I/O請(qǐng)求時(shí),線程會(huì)進(jìn)入到阻塞狀態(tài)。當(dāng)sleep()狀態(tài)超時(shí)、join()等待線程終止或者超時(shí)、或者I/O處理完畢時(shí),線程重新轉(zhuǎn)入就緒狀態(tài)。
5. 死亡狀態(tài)(Dead): 線程執(zhí)行完了或者因異常退出了run()方法,該線程結(jié)束生命周期。
相關(guān)免費(fèi)學(xué)習(xí)推薦:java基礎(chǔ)教程
以上就是java線程狀態(tài)有哪些的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
java怎么學(xué)習(xí)?java怎么入門?java在哪學(xué)?java怎么學(xué)才快?不用擔(dān)心,這里為大家提供了java速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)