線程狀態轉換

一、線程狀態轉換

?

新建(New)

創建后尚未啟動。

可運行(Runnable)

可能正在運行,也可能正在等待 CPU 時間片。

包含了操作系統線程狀態中的 Running 和 Ready。

阻塞(Blocking)

等待獲取一個排它鎖,如果其線程釋放了鎖就會結束此狀態。

無限期等待(Waiting)

等待其它線程顯式地喚醒,否則不會被分配 CPU 時間片。

進入方法退出方法
沒有設置 Timeout 參數的 Object.wait() 方法Object.notify() / Object.notifyAll()
沒有設置 Timeout 參數的 Thread.join() 方法被調用的線程執行完畢
LockSupport.park() 方法-

限期等待(Timed Waiting)

無需等待其它線程顯式地喚醒,在一定時間之后會被系統自動喚醒。

調用 Thread.sleep() 方法使線程進入限期等待狀態時,常常用“使一個線程睡眠”進行描述。

調用 Object.wait() 方法使線程進入限期等待或者無限期等待時,常常用“掛起一個線程”進行描述。

睡眠和掛起是用來描述行為,而阻塞和等待用來描述狀態。

阻塞和等待的區別在于,阻塞是被動的,它是在等待獲取一個排它鎖。而等待是主動的,通過調用 Thread.sleep() 和 Object.wait() 等方法進入。

進入方法退出方法
Thread.sleep() 方法時間結束
設置了 Timeout 參數的 Object.wait() 方法時間結束 / Object.notify() / Object.notifyAll()
設置了 Timeout 參數的 Thread.join() 方法時間結束 / 被調用的線程執行完畢
LockSupport.parkNanos() 方法-
LockSupport.parkUntil() 方法-

死亡(Terminated)

可以是線程結束任務之后自己結束,或者產生了異常而結束。

來源:https://github.com/CyC2018/CS-Notes/tree/master/notes

轉載于:https://www.cnblogs.com/AnXinliang/p/9875328.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450864.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450864.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450864.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Eclipse中啟動tomcat報錯java.lang.OutOfMemoryError: PermGen space的解決方法

見:http://outofmemory.cn/java/OutOfMemoryError/outofmemoryerror-permgen-space-in-tomcat-with-eclipse 有的項目引用了太多的jar包,或者反射生成了太多的類,異或有太多的常量池,就有可能會報java.lang.OutOfMemoryError: Per…

MPEG-4 AVC/H.264 信息

作者:haibara 來源:pcicp.com 本FAQ由(haibara)翻譯,期間受到kaito_mkid(pcicp)幫助,在此感謝,由于Newbie的關系,如有翻譯錯誤,還請各位指出&…

eclipse搜索關鍵字

見:https://jingyan.baidu.com/article/e6c8503c1a60d2e54f1a18e3.html

裝飾器語法糖運用

裝飾器語法糖運用 前言:函數名是一個特性的變量,可以作為容器的元素,也可以作為函數的參數,也可以當做返回值。閉包定義: 內層函數對外層函數(非全局)變量的引用,這個內層函數就可以…

fb 4.7英文版 顯示行數

窗口(window)首選項(Preference)—>常規(General)—>編輯器(Editors)—>文本編輯器(Text Editors)—>“顯示行號”(Show line number…

集市中迷失的一代:FreeBSD核心開發者反思開源軟件質量

摘要:本文作者Poul-Henning Kamp (phkFreeBSD.org) ,26年的計算機程序員,他編寫的軟件以底層構建塊的形式廣泛被開源和商業產品采用。講述作者在看完《設計原本》這本書后所引發的共鳴! 13年前,新興的草根開源軟件運動…

點擊表格彈窗獲取另外一套數據之后,原表格相關數據的調用

用H5新屬性,data-*, $獲取方式: 待續。。。。。。。 轉載于:https://www.cnblogs.com/He-tao-yuan/p/9888316.html

谷歌瀏覽器如何如何禁用彈出窗口阻止程序

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 在工具欄上使用 Google Chrome 菜單。工具欄上的菜單位于瀏覽器右上角。 選擇“設置”。 在頁面底端找到并點擊“顯示高級設置”。 在“隱…

Python 3 入門,看這篇就夠了

文章目錄 簡介基礎語法運算符變量數據類型流程控制迭代器生成器函數 自定義函數參數傳遞 可更改與不可更改對象參數匿名函數變量作用域模塊面向對象錯誤和異常文件操作序列化命名規范參考資料簡介 Python 是一種高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。Pyt…

面試經歷(二)

前面說到用數據庫中的鎖機制對并發事務進行控制,這節來說說事務方法和事務方法發生嵌套調用時事務如何進行傳播。例如:方法可能繼續在現有事務中運行,也可能開啟一個新事務,并在自己的事務中運行。例如:方法可能繼續在…

最有價值的編程忠告

摘要:本文是來自貝爾實驗室Plan 9操作系統的創始人Rob Pike給大家分享的編程忠告!Rob Pike,目前谷歌公司最著名的軟件工程師之一,曾是貝爾實驗室Unix開發團隊成員,締造Go語言和Limbo語言的核心人物。 Rob Pike&#xf…

Column count doesn't match value count at row 1 原因

mysql 提示 : Column count doesnt match value count at row 1錯誤,SQL語句中列的個數和值的個數不等, 如: insert into table1 (field1,field2) values(值1,值2,值3 ) 列只有2個,值 卻有3個…

MarkDowm快捷鍵大全

文章目錄一:菜單欄二:文件三:編輯四:段落五:格式六:視圖一:菜單欄 文件:altF 編輯:altE 段落:altP 格式:altO 視圖:altV 主題&#x…

Kinect2.0-空間長度測量

1. 鼠標左鍵按下選擇起點,拖動鼠標,左鍵放開,確定終點。 實現效果1實現效果22. 在linux下使用libfreenect2開源多平臺驅動來獲取kinect2.0的傳感器信息,得到深度信息,并通過libfreenect2提供的getPointXYZ函數&#xf…

帶數據庫的智能合約

編寫使用數據庫的智能合約 前面一直在搗鼓EOS網絡搭建的相關東西。然而今天比較不走運的是,興致勃勃的把源碼版本升到4.0,在編譯的時候如我所猜想的出現了一系列問題,正一籌莫展的時候,導師突然問了我一個關于合約如何操作數據庫的…

沒有完美的軟件:編程永遠不容易

摘要:很多人想用十全十美來修飾一樣東西,比如軟件,對于客戶來說,當然希望他們的軟件能做到完美。雖然很多專家說利用一些規范可以讓軟件達到更好!但是在現實開發中,真的會有那么完美的軟件嗎? 最…

Eclipse斷點調試出現Source not found

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 我的情況是和網上說的都不一樣,我真的也沒有想到這么坑, 我居然無意寫了一個死循環,dao/mapper調sql…

Memory Compression這到底是個什么東西?

Memory Compression這到底是個什么東西? Memory Compression這個進程,經過我的查詢說是內存壓縮功能,作用是壓縮內存讓內存占用更低,但是為什么這個進程瘋狂占用我的內存,我用的Win10 8G,通過資源監視器查看…

MySQL 5.6 for Windows 解壓縮版配置安裝

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 MySQL是一個小巧玲瓏但功能強大的數據庫,目前十分流行。但是官網給出的安裝包有兩種格式,一個是msi格式&#xf…

safari的一些問題

1、圖片過大時,在webview中是不會加載顯示的。2、如果是通過一個地址返回的base64數據給image,記住要在后臺進行base64_decode解析數據,這樣才是真實的圖片數據,后臺保存數據的時候不要保存"data:image/png;base64,"這一…