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

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務(wù)器之家 - 編程語言 - Java教程 - Java線程阻塞方法sleep()與wait()的全面講解

Java線程阻塞方法sleep()與wait()的全面講解

2021-08-11 11:27Chin_style Java教程

這篇文章主要介紹了Java線程阻塞方法sleep()與wait()的全面講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

一、前期基礎(chǔ)知識儲備

sleep()和wait()方法都是Java中造成線程阻塞的方法。感興趣的讀者可以參見筆者之前的文章《Java中什么方法導(dǎo)致線程阻塞》,里面詳細(xì)講述了為什么Java要造成線程阻塞和Java中造成線程阻塞的幾種方法。

(1)線程的生命周期

Java線程阻塞方法sleep()與wait()的全面講解

這是筆者在谷歌圖片中找到的一張簡單描述線程生命周期的圖片,可以看到,一個線程正常的生命周期中會經(jīng)歷“創(chuàng)建”“就緒”“運行”“阻塞”“運行”“死亡”等幾個生命周期,其中“阻塞”是我們開發(fā)者非常需要關(guān)注的,因為通過Java提供的阻塞方法,可以做到資源和線程最合理的調(diào)配,而其中sleep()和wait()方法就是Java中實現(xiàn)線程阻塞的關(guān)鍵性方法。

(2)sleep()和wait()方法的阻塞線程的場景

我們這里,來看第二張圖片,這張圖片就比較詳細(xì)的向我們展現(xiàn)了一個線程的完整生命周期中發(fā)生的各種“事件”和調(diào)用的各種方法。

我們來總結(jié)一下sleep()和wait()方法的阻塞場景。

Java線程阻塞方法sleep()與wait()的全面講解

①sleep()實現(xiàn)線程阻塞的方法,我們稱之為“線程睡眠”,方式是超時等待,怎么理解?就是sleep()通過傳入“睡眠時間”作為方法的參數(shù),時間一到就從“睡眠”中“醒來”;

②wait()方法實現(xiàn)線程阻塞的方法,我們稱之為“線程等待”,方式有兩種:

1)和sleep()方法一樣,通過傳入“睡眠時間”作為參數(shù),時間到了就“醒了”;

2)不傳入時間,進(jìn)行一次“無限期的等待”,只用通過notify()方法來“喚醒”。

二、sleep()和wait()的區(qū)別

通過上面兩幅圖的展示和筆者的相關(guān)描述,相信讀者你已經(jīng)有幾分清楚了,sleep()和wait()方法的區(qū)別之一,就是實現(xiàn)線程阻塞的方式不一樣。

那么sleep()和wait()二者還有一個很大的區(qū)別就是,二者“是否釋放同步鎖”不一樣。我們都知道,多線程開發(fā)中,為了實現(xiàn)不同線程間的同步會采用同步鎖的方式——synchronized即在線程使用一個資源時為其加鎖,這樣其他的線程便不能訪問那個資源了,直到解鎖后才可以訪問。

感興趣的讀者可以參考筆者之前文章《利用synchronized實現(xiàn)線程同步》里面詳細(xì)介紹了多線程開發(fā)中利用synchronized實現(xiàn)線程同步的方式。

而使用sleep()和wait()兩種方法對于“CPU執(zhí)行權(quán)”和“同步鎖”的方式不同:

①sleep()釋放CPU執(zhí)行權(quán),但不釋放同步鎖;

②wait()釋放CPU執(zhí)行權(quán),也釋放同步鎖,使得其他線程可以使用同步控制塊或者方法。

以上,就是sleep()和wait()方法的兩個關(guān)鍵性區(qū)別。

總結(jié):綜上我們利用下表展示sleep()和wait()的所有區(qū)別:

Java線程阻塞方法sleep()與wait()的全面講解

ps:謝謝博友的更正。這里進(jìn)行改正: wait()為Object基類中的方法,調(diào)用時亦需要捕獲異常,以下為wait()可能拋出的異常:

Java線程阻塞方法sleep()與wait()的全面講解

PS:能用圖說明的問題,我們就用圖來說明,能用表說明的問題,我們就用表來說明,這樣理解起來非常清晰。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。如有錯誤或未考慮完全的地方,望不吝賜教。

原文鏈接:https://blog.csdn.net/weixin_41101173/article/details/79889464

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久免费 | 欧美亚洲视频在线观看 | 精品久久免费观看 | 973影院| 亚洲第一人黄所 | 五月天网站 | 免费高清在线观看 | 色图图片 | 国产精品久久久久久久久久久久 | 处女摘花视频 | 日本黄色高清视频网站 | 成人操| 欧美三级不卡在线观线看高清 | 国产自拍视频一区 | 大肥臀风间由美 中文字幕 大东北chinesexxxx露脸 | 国产caonila在线观看 | 青涩体验在线观看未删减 | 精品国产午夜久久久久九九 | 女教师的一级毛片 | 欧美专区在线播放 | 亚洲高清色图 | 骚虎tv| 国产卡一卡二卡3卡乱码免费 | 久久WWW免费人成一看片 | 国产综合成人久久大片91 | 成人免费一区二区三区在线观看 | 国产人成精品午夜在线观看 | 欧美一区二区三区四区在线观看 | 亚洲精品www久久久久久 | 国产精品欧美一区二区 | 青青草国产免费国产是公开 | 日本中文字幕黑人借宿影片 | 久久五月综合婷婷中文云霸高清 | 四虎影院入口 | 18韩国美女vip视频7 | 欧美精品久久一区二区三区 | 成人福利在线视频免费观看 | kuaibo成人播放器 | 欧美日韩国产在线一区 | 亚洲男人网| 国内体内she精视频免费 |