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