java中線程有多少種狀態(tài)
java線程的狀態(tài)
馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號(hào): 73203。
新建 (new或born) : 馬克-to-win: new出線程對(duì)象,還沒start呢, 處于新建狀態(tài)
就緒或說可運(yùn)行(ready或runnable): 馬克-to-win: 在start()之后,它將處于就緒狀態(tài)或可運(yùn)行狀態(tài),但cpu還沒分配給它呢,所以還沒真正運(yùn)行呢。通過后面的學(xué)習(xí)可知:sleep(),join(),IO請(qǐng)求,同步鎖釋放等很多操作之后, 真正運(yùn)行之前,都會(huì)回到這個(gè)狀態(tài)。
運(yùn)行 (Running) : 獲取到了cpu,可以真正運(yùn)行了, run()里的代碼被運(yùn)行。
阻塞 (Blocked) – 因?yàn)槟撤N原因暫時(shí)停止運(yùn)行。wait(),獲取對(duì)象的同步鎖之前,sleep(),join(),或者發(fā)出了I/O請(qǐng)求時(shí)。
死亡 (Dead) – 在run()方法已完成執(zhí)行(或break,return,異常)或其 stop() 方法被調(diào)用之后(sun公司已不推薦使用,因?yàn)橹袛嗟锰?,容易引起同步問題),線程就處于死亡狀態(tài)。