線程可以有6種狀態(tài):
- New(新創(chuàng)建)
當(dāng)用new創(chuàng)建一個(gè)線程時(shí),此時(shí)為new狀態(tài)。 - Runnable(可運(yùn)行)
新建的線程調(diào)用start()方法之后,線程變?yōu)榭蛇\(yùn)行狀態(tài),可運(yùn)行狀態(tài)的線程可能在運(yùn)行也可能沒(méi)運(yùn)行,這取決于操作系統(tǒng)給線程提供運(yùn)行的時(shí)間。 - 被阻塞(Blocked)
當(dāng)線程準(zhǔn)備運(yùn)行的時(shí)候,發(fā)現(xiàn)請(qǐng)求的內(nèi)部對(duì)象鎖被其他線程持有,線程將進(jìn)入阻塞狀態(tài)。只有當(dāng)其他線程釋放該鎖,且線程調(diào)度器允許本線程持有它的時(shí)候,線程將轉(zhuǎn)變?yōu)榉亲枞麪顟B(tài)。 - 等待(Waiting)
當(dāng)線程等待另一個(gè)線程通知線程調(diào)度器一個(gè)條件時(shí),他自己進(jìn)入等待狀態(tài)。 - 計(jì)時(shí)等待(Timed waiting)
調(diào)用帶超時(shí)參數(shù)方法的線程將進(jìn)入計(jì)時(shí)等待。此狀態(tài)一直持續(xù)到超時(shí)或者接收到適當(dāng)?shù)耐ㄖ?/li> - 終止(Terminated)
run方法正常退出而死亡;
因?yàn)橐粋€(gè)未捕獲的異常終止當(dāng)前的run方法意外死亡;
可以調(diào)用stop方法殺死線程,此方法不安全,已標(biāo)注為Deprecated,不建議使用。