線程的生命周期?
線程的生命周期是指線程從一開始創(chuàng)建,到run方法的運(yùn)行完畢以后的狀態(tài)變化【線程狀態(tài)的切換】
線程狀態(tài):新建狀態(tài) ?就緒狀態(tài) ?運(yùn)行狀態(tài) ?阻塞狀態(tài) ?死亡狀態(tài)

新建狀態(tài):通過(guò)new+構(gòu)造方法創(chuàng)建出線程對(duì)象,此時(shí)線程就處于新建狀態(tài)。
????????????????????新建狀態(tài)的線程不能運(yùn)行。
就緒狀態(tài): 新建狀態(tài)的線程調(diào)用start方法之后就進(jìn)入就緒狀態(tài)。
??????????????????就緒狀態(tài)的線程具有執(zhí)行能力,但是缺少cpu資源【萬(wàn)事具備,只差資源】
? ? ? ? ? ? ? ? ??經(jīng)過(guò)爭(zhēng)搶得到可運(yùn)行的cpu資源從而進(jìn)入運(yùn)行狀態(tài)。
運(yùn)行狀態(tài):就緒狀態(tài)的線程得到cpu資源run方法開始執(zhí)行,此時(shí)線程進(jìn)入運(yùn)行狀態(tài)。
????????????????????當(dāng)cpu資源使用完畢以后會(huì)再一次回到就緒狀態(tài),繼續(xù)爭(zhēng)搶cpu資源從而再一次入運(yùn)行狀態(tài)。
????????????????????1.?運(yùn)行狀態(tài)的線程調(diào)用sleep方法,線程會(huì)進(jìn)入阻塞狀態(tài)
????????????????????2.?運(yùn)行狀態(tài)的線程調(diào)用wait方法,線程會(huì)進(jìn)入阻塞狀態(tài)
????????????????????3.?輸入/輸出操作時(shí),線程會(huì)進(jìn)入阻塞狀態(tài)
??????????????????????.........
阻塞狀態(tài):有不同的原因?qū)е戮€程暫時(shí)暫停執(zhí)行,此時(shí)的線程就處于阻塞狀態(tài)。
?????????????????當(dāng)造成阻塞的原因消失后,在阻塞狀態(tài)中的線程就進(jìn)入就緒狀態(tài),爭(zhēng)搶cpu資源從而再一次入運(yùn)行狀態(tài)。
????????????????1.阻塞原因調(diào)用sleep方法,休眠時(shí)間結(jié)束以后進(jìn)入就緒狀態(tài)
????????????????2.?阻塞原因調(diào)用wait方法,通過(guò)調(diào)用notify/notifyAll方法喚醒,進(jìn)入就緒狀態(tài)
????????????????3.?阻塞原因輸入/輸出操作,等待輸入/輸出結(jié)束,進(jìn)入就緒狀態(tài)
????????????????......
死亡狀態(tài):1.run方法正常執(zhí)行完畢,線程就進(jìn)入死亡狀態(tài)
????????????????2.?調(diào)用了stop方法,強(qiáng)制迫使線程進(jìn)入死亡狀態(tài)【不安全】
進(jìn)入死亡狀態(tài)的線程不能在繼續(xù)運(yùn)行,如果要再一次運(yùn)行起來(lái),需要重新調(diào)用start方法,進(jìn)入就緒狀態(tài),爭(zhēng)搶cpu資源從而再一次入運(yùn)行狀態(tài)。