1、新建(New):已建立後尚未啟動的執行緒處於這種狀態。
2、運行(Runnable):包含作業系統執行緒狀態中的Running和Ready,也就是處於此狀態的執行緒有可能正在執行,也有可能正在等待著作業系統為它分配執行時間。
3、期等待(Waiting):處於此狀態的執行緒不會被指派處理器執行時間,它們要等待被其他執行緒明確喚醒。以下方法會讓執行緒陷入期的等待狀態:
沒有設定Timeout參數的Object::wait()方法;
沒有設定Timeout參數的Thread::join()方法;
LockSupport::park()方法。
4、限期等待(Timed Waiting):處於這種狀態的執行緒也不會被指派處理器執行時間,不過無須等待被其他執行緒明確喚醒,在一定時間之後它們會由系統自動喚醒。以下方法會讓執行緒進入限期等待狀態:
設定了Timeout參數的Object::wait()方法;
設定了Timeout參數的Thread::join()方法;
LockSupport::parkNanos()方法;
LockSupport::parkUntil()方法。
5、阻塞(Blocked):線程被阻塞了,「阻塞狀態」與「等待狀態」的區別是「阻塞狀態」在等待獲取到一個排它鎖,這個事件將在另一個執行緒放棄這個鎖的時候發生;而「等待狀態」則是在等待一段時間,或是喚醒動作的發生。在程式等待進入同步區域的時候,執行緒將進入這種狀態。
6、結束(Terminated):已終止執行緒的執行緒狀態,執行緒已經結束執行。
Java的基本資料型別分為:
1、整數型,用來表示整數的資料型態。
2、浮點型,用來表示小數的資料型別。
3、字元類型,字元類型的關鍵字是「char」。
4、布林類型,是表示邏輯值的基本資料型別。
以上是Java線程有哪些狀態的詳細內容。更多資訊請關注PHP中文網其他相關文章!