線程的狀態(tài)
Java線程在運行過程中可能會有以下6種狀態(tài)
New:新創(chuàng)建狀態(tài)。線程被創(chuàng)建,還沒有調(diào)用start方法,在線程運行之前還有一些基礎(chǔ)工作要做
Runnable:可運行狀態(tài)。一旦調(diào)用start方法,線程就處于Runnable方法。一個可運行的線程可能正在運行也可能沒有運行,這取決于操作系統(tǒng)給線程提供的運行的時間。
Blocked:阻塞狀態(tài)。表是線程被鎖阻塞,它暫時不活動。
Waiting:等待狀態(tài)。線程暫時不活動,并且不運行任何代碼,消耗最少的資源,知道線程調(diào)度器重新激活它
Timed waiting:超時等待狀態(tài)。和等待狀態(tài)不同的是,它是可以在指定的時間自行返回的。
Terminated:超時等待狀態(tài)。表示當(dāng)前線程已經(jīng)執(zhí)行完畢。導(dǎo)致線程終止有兩種情況,第一種是run方法執(zhí)行完畢后正常退出;第二種就是因為一個沒有捕獲的異常二終止了run方法,導(dǎo)致線程進入終止?fàn)顟B(tài)。