千鋒教育Java入門(mén)全套視頻教程(java核心技術(shù),適合java零基礎(chǔ),Java

線程生命周期
1.新建狀態(tài)
1.1 在程序中用構(gòu)造方法創(chuàng)建了一個(gè)線程對(duì)象后,新的線程對(duì)象便處于新建狀態(tài),此時(shí),它已經(jīng)有了相應(yīng)的內(nèi)存空間和其它資源,但還處于不可運(yùn)行狀態(tài)。新建一個(gè)線程對(duì)象可采用線程構(gòu)造方法來(lái)實(shí)現(xiàn)。
2.就緒狀態(tài)
2.1. 新建線程對(duì)象后,調(diào)用該線程的start()方法就可以啟動(dòng)線程。當(dāng)線程啟動(dòng)時(shí),線程進(jìn)入就緒狀態(tài)。此時(shí),線程將進(jìn)入線程隊(duì)列排隊(duì),等待CPU調(diào)用,這表明它已經(jīng)具備了運(yùn)行條件。
3.運(yùn)行狀態(tài)
3.1 當(dāng)就緒狀態(tài)的線程被調(diào)用并獲得處理器資源時(shí),線程就進(jìn)入了運(yùn)行狀態(tài)。此時(shí),自動(dòng)調(diào)用該線程對(duì)象的run()方法。run()方法定義了該線程的操作和功能。
4.阻塞狀態(tài)
4.1 一個(gè)正在執(zhí)行的線程在某些特殊情況下,如被人為掛起,將讓出CPU并暫時(shí)中止自己的執(zhí)行,進(jìn)入阻塞狀態(tài)。在可執(zhí)行狀態(tài)下,如果調(diào)用sleep(2000)、wait()等方法,線程都將進(jìn)入阻塞狀態(tài)。阻塞時(shí),線程不能進(jìn)入排隊(duì)隊(duì)列,只有當(dāng)引起阻塞的原因被消除后,線程才可以轉(zhuǎn)入就緒狀態(tài)。
e) 死亡狀態(tài)
5.1線程調(diào)用stop()方法時(shí)或run()方法執(zhí)行結(jié)束后,線程即處于死亡狀態(tài)。處于死亡狀態(tài)的線程不具有繼續(xù)運(yùn)行的能力。