亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中的線程狀態有幾種

發布時間:2020-06-24 10:19:04 來源:億速云 閱讀:135 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關java中的線程狀態有幾種,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

線程的狀態

線程有如下6種狀態:

New(新創建 )

Runnable(可運行)

Blocked(被阻塞)

Waiting(等待)

Timed waiting(計時等待)

Terminated(被終止)

其中,要獲取一個線程當前的狀態,可以調用getState 方法。

下面,對每種狀態進行解釋

1.新創建線程(New)

當我們使用new操作符來創建了一個線程時,如使用new Thread(r)時,線程還未開始運行,線程中的代碼也沒有開始執行,此時就成為New狀態。

2.可運行線程(Runnable)

當我們對一個線程執行start()方法后,就會啟動該線程。但是注意,一個處于可運行狀態的線程可能正在運行也可能沒有運行,這時取決于操作系統的時間片調度。搶占式調度系統會給每一個線程分配一個時間片來運行,在時間片使用完后,操作系統就會剝奪它運行的權力,并更根據優先級選擇下一個要運行的線程。

3.被阻塞、等待狀態(Blocked、waiting、Timed waiting)

當一個線程處于阻塞和等待狀態時,它不做任何工作,也不執行任何代碼。直到操作系統重新激活它。

當一個線程試圖獲取一個內部對象鎖,而這個鎖又被其它線程持有時,該線程就進入阻塞狀態,當其它線程釋放這個鎖后,并且線程調度器允許該線程持有它時,該線程將會變成非阻塞狀態。

當線程等待另一個線程通知調度器一個條件時,它自己就進入等待狀態,再調用Object.wait方法或者Thread.join方法時,就會出現這種情況。被阻塞狀態和等待狀態時大有不同的。

有幾個方法有一個超時參數。調用它們導致線程進入計時等待狀態這一狀態將一直保存到超時期滿或者接收到適當的通知。帶有超時參數的方法有:Thread.sleepObject.waitThread.joinLock,tryLock 以及 Condition.await 的計時版。

4.被終止的線程

線程終止有兩種原因:

因為run()方法執行完畢正常退出

因為一個沒有捕獲的異常而終止了run方法導致意外死亡

5.總結

java中的線程狀態有幾種

看完上述內容,你們對java中的線程狀態有進一步的了解嗎?如果還想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石楼县| 本溪市| 金阳县| 湖南省| 湟中县| 轮台县| 佛冈县| 南乐县| 东至县| 辽阳县| 镇雄县| 建瓯市| 嵩明县| 淮安市| 株洲市| 正镶白旗| 广宁县| 石河子市| 云霄县| 禹州市| 剑河县| 巴彦淖尔市| 南皮县| 江西省| 佳木斯市| 盐源县| 石屏县| 雅江县| 江华| 秦安县| 玉门市| 新化县| 芜湖市| 岳西县| 延川县| 兴业县| 阿拉善左旗| 航空| 平度市| 朝阳县| 聂荣县|