最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

線程(第三部分)

2021-06-25 20:16 作者:e小白官方  | 我要投稿

本文章作者為yupic1(e小白網(wǎng)站用戶名)。e小白網(wǎng)址:www.e-xiaobai.com?

同步方法

  • 由于我們可以通過private關(guān)鍵字來保證數(shù)據(jù)對象只能被方法訪問,所以我們只需要針對方法提出一套機制,這套機制就是synchronized關(guān)鍵字,它包括兩種用法:synchronized方法和synchronized塊。

同步方法:public synchronized void method(int args){}

  • synchronized方法控制對“對象”的訪問,每個對象對應(yīng)一把鎖,每個synchronized方法都必須獲得調(diào)用該方法的對象的鎖才能執(zhí)行,否則線程會阻塞,方法一旦執(zhí)行,就獨占該鎖,知道方法返回才釋放鎖,后面被阻塞的線程才能獲得這個鎖,繼續(xù)執(zhí)行。

缺陷:若將一個大的方法聲明為synchronized將會影響效率

把修改對象的方法聲明為synchronized。

共享的資源在哪個類里面就鎖對應(yīng)的實體類。


死鎖

  • 產(chǎn)生死鎖的四個必要條件:

    • 互斥條件:一個資源每次只能被一個線程使用。

    • 請求與保持條件:一個進程因請求資源而被阻塞時,對已獲得的資源保持不放

    • 不剝奪條件:進程以獲得的資源,在未使用完之前,不能強行剝奪

    • 循環(huán)等待條件:若干進程之間,形成一種首尾相接的循環(huán)等待資源關(guān)系

上面列出了死鎖的四個必要條件,我們只要想辦法破其中任意一個或多個就可以避免死鎖的發(fā)生。

Lock(鎖)

  • 從JDK5.0開始,Java提供了更強大的線程同步機制--通過顯式定義同步鎖對象來實現(xiàn)同步。同步鎖使用Lock對象充當。

  • java.util.concurrent.locks.Lock接口是控制多個資源對共享資源進行訪問的工具。鎖提供了對共享資源的獨占訪問,每次只能有一個線程對Lock對象加鎖,線程開始訪問共享資源之前應(yīng)先獲得Lock對象。

  • ReentrantLock類實現(xiàn)了Lock,它擁有與synchronized相同的并發(fā)性和內(nèi)存語義,在實現(xiàn)線程安全的控制中,比較常用的是ReentrantLock,可以顯示加鎖,釋放鎖。

由于篇幅問題,文章部分內(nèi)容省略。詳細內(nèi)容可在e小白網(wǎng)站(www.e-xiaobai.com)進行查看【版權(quán)聲明:本文為e小白網(wǎng)站www.e-xiaobai.com的原創(chuàng)作品,需經(jīng)e小白網(wǎng)站或作者本人同意許可后,方可轉(zhuǎn)發(fā)到其它網(wǎng)站平臺上,否則我們有保留追究法律責(zé)任的權(quán)利】

線程(第三部分)的評論 (共 條)

分享到微博請遵守國家法律
津南区| 衡阳市| 牙克石市| 潢川县| 莱阳市| 景德镇市| 富民县| 开封县| 新丰县| 平度市| 公主岭市| 淮阳县| 普兰县| 陇西县| 江源县| 教育| 安龙县| 宁城县| 乌拉特前旗| 延庆县| 独山县| 抚宁县| 肃宁县| 通城县| 黄龙县| 通州市| 永寿县| 湟中县| 长乐市| 连平县| 邻水| 贵州省| 墨脱县| 日照市| 通州区| 泌阳县| 于田县| 大宁县| 中西区| 清苑县| 乐都县|