這篇文章主要介紹“Java線程有哪些狀態”,在日常操作中,相信很多人在Java線程有哪些狀態問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java線程有哪些狀態”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
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線程有哪些狀態”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。