今天小編就為大家?guī)?lái)一篇有關(guān)java線程狀態(tài)的文章。小編覺(jué)得知識(shí)點(diǎn)挺全面的,為此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、雅安服務(wù)器托管、營(yíng)銷軟件、網(wǎng)站建設(shè)、延慶網(wǎng)站維護(hù)、網(wǎng)站推廣。1、NEW
該狀態(tài)是指線程剛創(chuàng)建,尚未啟動(dòng)。
2、RUNNABLE
表示線程正在正常運(yùn)行中,當(dāng)然可能會(huì)有某種耗時(shí)計(jì)算/IO等待的操作/CPU時(shí)間片切換等,這個(gè)狀態(tài)下發(fā)生的等待一般是其他系統(tǒng)資源,而不是鎖、Sleep等。
3、BLOCKED
此狀態(tài)下,是在多個(gè)線程有同步操作的場(chǎng)景,比如正在等待另一個(gè)線程的synchronized 塊的執(zhí)行釋放,或者可重入的 synchronized塊里別人調(diào)用wait() 方法,也就是說(shuō)這里是線程在等待進(jìn)入臨界區(qū)。
4、WAITING
這個(gè)狀態(tài)下是指線程擁有了某個(gè)鎖之后, 調(diào)用了他的wait方法, 等待其他線程/鎖擁有者調(diào)用 notify / notifyAll 一遍該線程可以繼續(xù)下一步操作。
這里要區(qū)分 BLOCKED 和 WATING 的區(qū)別,一個(gè)是在臨界點(diǎn)外面等待進(jìn)入, 一個(gè)是在理解點(diǎn)里面wait等待別人notify, 線程調(diào)用了join方法 join了另外的線程的時(shí)候, 也會(huì)進(jìn)入WAITING狀態(tài), 等待被他join的線程執(zhí)行結(jié)束。
5、TIMED_WAITING
這個(gè)狀態(tài)就是有限的(時(shí)間限制)的WAITING, 一般出現(xiàn)在調(diào)用wait(long)、join(long)等情況下, 另外一個(gè)線程sleep后, 也會(huì)進(jìn)入TIMED_WAITING狀態(tài)。
6、TERMINATED
這個(gè)狀態(tài)下表示該線程的run方法已經(jīng)執(zhí)行完畢了, 基本上就等于死亡了(當(dāng)時(shí)如果線程被持久持有, 可能不會(huì)被回收)。
看完上述內(nèi)容,你們對(duì)java線程的幾種狀態(tài)大概了解了嗎?如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!