五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

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

分享到微博請遵守國家法律
大安市| 双峰县| 连城县| 巴彦县| 岳阳县| 和田市| 分宜县| 罗山县| 醴陵市| 自治县| 四子王旗| 友谊县| 淮阳县| 东源县| 自贡市| 阜平县| 临颍县| 绥滨县| 塘沽区| 兴化市| 宜宾市| 射阳县| 三门峡市| 玉林市| 南皮县| 昂仁县| 奉新县| 江都市| 襄汾县| 军事| 永胜县| 正定县| 赞皇县| 都安| 葵青区| 武城县| 毕节市| 工布江达县| 筠连县| 宁晋县| 临潭县|