国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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)利】

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

分享到微博請遵守國家法律
鲁甸县| 丰原市| 扶绥县| 山丹县| 宁武县| 屯留县| 扎鲁特旗| 许昌市| 尉氏县| 阳春市| 遂宁市| 武隆县| 方城县| 嵊泗县| 宁河县| 革吉县| 阿坝县| 镇原县| 临沭县| 梨树县| 工布江达县| 文成县| 南宫市| 大新县| 贵定县| 平原县| 屏东市| 衡阳市| 佛学| 衡东县| 马尔康县| 吉林省| 江安县| 通辽市| 东城区| 金门县| 巫溪县| 高邑县| 长宁区| 信宜市| 连云港市|