線程狀態:在給定時間點上,一個線程只能處于一種狀態。
public enum State {
NEW,//創建狀態
RUNNABLE,//可運行狀態
BLOCKED,//受阻塞并且正在等待監視器鎖的某一線程的線程狀態,是在多個線程有同步操作的場景
WAITING,//等待狀態
TIMED_WAITING,//定時的,等待不到來,也將定時喚醒自己。
TERMINATED //終止狀態
}
備注:區分 BLOCKED 和 WATING 的區別, 一個是在臨界點外面等待進入, 一個是在臨界點里面wait等待別人notify, 線程調用了join方法 join了另外的線程的時候, 也會進入WAITING狀態, 等待被他join的線程執行結束
線程常用函數:
start();
stop();調用thread.stop()會導致線程所持有的所有鎖的突然釋放(不可控制),被保護數據有可能不一致。
join(); 讓一個線程等待另一個線程完成的方法
notify / notifyAll
isAlive()
isInterrupted()
interrupt()
線程優先級:1-10
這里補上線程狀態圖
問題:線程同步,守護線程,線程池狀態圖?