一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java多線程之線程狀態

Java多線程之線程狀態

2021-12-27 23:16我是開發者FTDFTD Java教程

關于Java線程的狀態,有的人可能會說有4種狀態,有的會說有5種,6種,總之各種各樣的說法可能都有。造成這種情況的原因是:有很多的書上常常把操作系統進程狀態,線程狀態與Java線程狀態混在一起談。

Java多線程之線程狀態

關于Java線程的狀態,有的人可能會說有4種狀態,有的會說有5種,6種,總之各種各樣的說法可能都有。造成這種情況的原因是:有很多的書上常常把操作系統進程狀態,線程狀態與Java線程狀態混在一起談。下面這個圖相信大家在講多線程的文章中都見到過(或類似):

Java多線程之線程狀態

這些其實是操作系統上的書上常會提到的5種 進程(process) 狀態:new,ready,running,waiting,terminated。

其實最簡單的就是直接查看Java源碼,就知道Java中線程到底定義了幾種狀態。如果我們查看JDK源碼的話,就會發現Java語言中定義的線程狀態是不同于操作系統的,我們可以在Thread.State源碼中的注釋中看到,它說得很清楚:

These states are virtual machine states which do not reflect any operating system thread states。

也就是說Java語言中定義的這些狀態都是指虛擬機狀態,它不反映任何操作系統的線程狀態。

以RUNNABLE狀態為例,源碼中的注釋是這樣說的:executing in the Java virtual machine(正在Java虛擬機中執行)。至于它是否真正在執行,不是我們要操心的事。

一個 Java 線程它所對應的操作系統內核線程中的狀態可能有Running又有Ready,但在Java虛擬機層面則統一映射成了RUNNABLE 狀態。如果Java中覺得沒必要去區分這些狀態,我們也就沒有必要去糾結這些了。

還有一些情況下,操作系統也許只有一種狀態,但在Java中又作了細分,給出了三種不同的狀態,例如會把Java狀態中的 BLOCKED,WAITING,TIMED_WAITING 三種狀態都籠統地稱為 blocked 或者 waiting 。

又或者把TIMED_WAITING 狀態當作不存在,在很多文章中從來不提有這個狀態,顯然,這種做法又是受到傳統進程狀態劃分的影響。盡管它與WAITING很像,我們最好按著 Thread.State 中的定義來,不要自己隨意發揮。

所以這就明白了,那些很多聲稱Java線程只有4種或5種狀態的文章,常常都是自作主張地合并了這些狀態,把這些東西混為一談是非常容易引發混亂的,這個我們將會在后面具體談到。

綜上所述,為避免出現混亂,厘清概念所處的層次是非常重要的。

下面我們就以 JDK1.8 源碼中為標準,分別給大家介紹一下Java線程的這6種狀態,下面我們先來看一下 JDK 中對于線程狀態的定義都有哪些。

線程的6種狀態

在 Thread 類的一個內部枚舉類 Thread.State 中明確地定義這6種狀態,如下圖所示:

Java多線程之線程狀態

狀態含義:

  • 新建態 (NEW):一個尚未啟動的線程處于這一狀態。(A thread that has not yet started is in this state.)
  • 運行態(RUNNABLE):一個正在 Java 虛擬機中執行的線程處于這一狀態。(A thread executing in the Java virtual machine is in this state.)
  • 阻塞態(BLOCKED):一個正在阻塞等待一個監視器鎖的線程處于這一狀態。(A thread that is blocked waiting for a monitor lock is in this state.)
  • 等待態(WAITING):一個正在無限期等待另一個線程執行一個特別的動作的線程處于這一狀態。(A thread that is waiting indefinitely for another thread to perform a particular action is in this state.)
  • 計時等待(TIMED_WAITING):一個正在限時等待另一個線程執行一個動作的線程處于這一狀態。(A thread that is waiting for another thread to perform an action for up to a specified waiting time is in this state.)
  • 終止態(TERMINATED):一個已經退出的線程處于這一狀態。(A thread that has exited is in this state.)

在程序運行的某個給定時間點上,一個Java線程只能處于這6種狀態中的一種。

通過上面的介紹,相信大家就可以很清晰的、明確的知道Java線程狀態到底有幾種狀態,又分別都有哪些狀態了,雖然可能對各個線程狀態的詳細含義還不是特別了解,別著急,后面我們會逐一介紹,請大家多多關注后續文章。

參考:

關于Java的線程狀態

原文鏈接:https://mp.weixin.qq.com/s/1jvY9jSTYcEzvMWmVYWDCw

延伸 · 閱讀

精彩推薦
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7482021-02-04
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
主站蜘蛛池模板: 国产精品永久免费10000 | 欧美╳bbbb | 色婷在线 | 国产私拍精品88福利视频 | 精品久久香蕉国产线看观看麻豆 | 日日爽日日操 | 久久这里只有精品国产精品99 | 日韩精品视频在线观看免费 | 欧美精品黑人巨大在线播放 | 欧美黑人性猛交╳xx╳动态图 | 91porn最新地址 | 大陆国语自产精品视频在 | 国产精品资源站 | 波多野给衣一区二区三区 | 99久久综合给久久精品 | 青青草高清视频 | 青青国产成人久久激情91麻豆 | 冰山美人调教耻辱h | 日韩精品欧美激情国产一区 | 三上悠亚国产精品一区 | 2020国产精品永久在线观看 | 麻豆性视频 | 色综合久久最新中文字幕 | 亚洲欧美韩国日产综合在线 | 久久久91精品国产一区二区 | 青草香蕉精品视频在线观看 | 成人福利影院 | 无码观看AAAAAAAA片 | gogort人体的最新网站 | 国产成人v爽在线免播放观看 | 欧美激情精品久久久久久不卡 | 美女用手扒开粉嫩的屁股 | 亚洲国产情侣偷自在线二页 | 国产成人影院一区二区 | 国语自产拍在线观看7m | 欧美一区二区日韩一区二区 | 日本三级成人中文字幕乱码 | 手机看片国产免费久久网 | 精品国产自在天天线2019 | 青柠在线完整高清观看免费 | 午夜十八岁禁 |