Java線程共有6種狀態(tài),分別是:
1.新建狀態(tài)(New):新創(chuàng)建了一個(gè)線程對(duì)象,但還沒有調(diào)用start()方法。
2.運(yùn)行狀態(tài)(Runnable):線程對(duì)象調(diào)用了start()方法,線程進(jìn)入了運(yùn)行狀態(tài)。但是并不意味著線程正在運(yùn)行中,只是說此線程具備了運(yùn)行的條件,具體的運(yùn)行時(shí)間還要看CPU調(diào)度。
3.阻塞狀態(tài)(Blocked):線程在運(yùn)行過程中遇到了IO操作或者鎖對(duì)象,導(dǎo)致線程暫時(shí)停止執(zhí)行,進(jìn)入阻塞狀態(tài)。
4.等待狀態(tài)(Wait):線程調(diào)用了wait()方法,線程進(jìn)入等待狀態(tài),直到被notify()或notifyAll()喚醒。
5.超時(shí)等待狀態(tài)(Timed_Wait):線程調(diào)用了wait()方法并指定了等待時(shí)間,線程進(jìn)入超時(shí)等待狀態(tài),直到時(shí)間結(jié)束或被notify()或notifyAll()喚醒。
6.終止?fàn)顟B(tài)(Terminated):線程執(zhí)行完了run()方法,或者因?yàn)楫惓M顺隽藃un()方法,線程進(jìn)入終止?fàn)顟B(tài)。