根據JDK文檔的描述,Thread 運行狀態一共可分爲6種。html
還沒有啓動的線程的線程狀態。java
一個可運行的線程的線程狀態。在運行狀態的線程在java虛擬機執行,但它可能在等待其餘資源,如處理器的操做系統。api
線程阻塞等待監視器鎖的線程狀態。在阻塞狀態的線程等待監控鎖進入一個同步塊/方法或進入一個同步塊/方法調用後 Object.wait
。網絡
等待線程的線程狀態。一個線程處於等待狀態因爲調用如下方法之一:spa
Object.wait
沒有超時Thread.join
沒有超時LockSupport.park
等待狀態中的一個線程正在等待另外一個線程執行特定的動做。例如,一個線程,稱一個對象Object.wait()等待另外一個線程調用此對象上的Object.notify()或Object.notifyAll()。一個線程,稱Thread.join()等待指定線程終止。操作系統
具備指定等待時間的等待線程的線程狀態。一個線程在等待狀態的時間因爲調用下面的方法用指定的正等待時間:線程
終止線程的線程狀態。線程已完成執行。code
圖片來自網絡上,圖片中多了RUNNING和READY狀態。分別是獲取到cpu執行時間和讓出cpu執行時間的狀態。htm