JDK中Thread.State提供了6種狀態(tài)
/**
* 創(chuàng)建線(xiàn)程對(duì)象
*/
NEW,
/**
* start方法后
*/
RUNNABLE,
/**
* 遇到同步鎖,無(wú)法獲取鎖對(duì)象
*/
BLOCKED,
/**
* wait方法
*/
WAITING,
/**
* sleep方法
*/
TIMED_WAITING,
/**
* 線(xiàn)程代碼跑完
*/
TERMINATED;
其中RUNNABLE狀態(tài)可分為2個(gè)狀態(tài)
Ready
當(dāng)線(xiàn)程創(chuàng)建后,其他線(xiàn)程調(diào)用start方法,該線(xiàn)程就進(jìn)入到就緒狀態(tài),JVM就會(huì)為創(chuàng)建方法調(diào)用棧和程序計(jì)數(shù)器,處于這個(gè)狀態(tài)的線(xiàn)程位于可運(yùn)行的池中,等待獲取CPU的使用權(quán),其他處于阻塞狀態(tài)解除阻塞之后也會(huì)進(jìn)入就緒狀態(tài)
Running
處于這個(gè)狀態(tài)的線(xiàn)程占用CPU,執(zhí)行程序代碼,只有處于就緒狀態(tài)的線(xiàn)程才會(huì)有機(jī)會(huì)轉(zhuǎn)到運(yùn)行狀態(tài)
線(xiàn)程狀態(tài).png
