国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:88日期:2022-08-16 15:03:54
一、前期基礎知識儲備

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

(1)線程的生命周期

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

①sleep()釋放CPU執行權,但不釋放同步鎖;

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

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

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

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

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

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

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

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Java
相關文章:
主站蜘蛛池模板: 日本aaaa精品免费视频 | 欧美日韩精品在线视频 | 色伊人国产高清在线 | 曰本女同互慰高清在线观看 | 台湾一级特黄精品大片 | 国产性自爱拍偷在在线播放 | 亚洲精品国产专区一区 | 国产精品久久久久无码av | 国产99视频精品免费观看9e | 欧美一级视频在线观看 | 亚洲欧美另类自拍第一页 | 九九精彩视频在线观看视频 | 国产成人综合网在线观看 | 亚洲国产日韩欧美 | 狠狠色丁香婷婷久久综合不卡 | 欧美一级特黄真人毛片 | a级国产乱理伦片在线观看国 | 色多多最新地址福利地址 | 国产一区二区三区在线免费观看 | 俄罗斯一级毛片免费播放 | 久久中文亚洲国产 | 国产成人精品一区二区三区 | 狠狠色丁香婷婷久久综合考虑 | 玖草在线观看 | 国产一级毛片视频在线! | 精品视频一区二区三区免费 | 国产孕妇做受视频在线观看 | 国产综合精品在线 | 国产精成人品 | 亚洲日本va午夜中文字幕 | 欧美亚洲激情视频 | 欧美俄罗斯一级毛片 | 国产一级视频免费 | 伊在人亚洲香蕉精品区 | 日韩国产欧美一区二区三区 | 亚洲精品视频在线观看免费 | 毛片免费在线视频 | 手机福利在线 | 男人的天堂在线观看入口 | 91香蕉视频成人 | 日本三级s级在线播放 |