91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ReentrantLock與Synchronized的區別是什么

發布時間:2021-10-19 18:39:55 來源:億速云 閱讀:150 作者:柒染 欄目:大數據

ReentrantLock與Synchronized的區別是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

public class ReentrantLock implements Lock, java.io.Serializable {}

ReentrantLock與Synchronized的區別:

  • ReentrantLock和synchronized都是獨占鎖,只允許線程互斥的訪問臨界區。但是實現上兩者不同:synchronized加鎖解鎖的過程是隱式的,用戶不用手動操作,優點是操作簡單,但顯得不夠靈活。一般并發場景使用synchronized的就夠了;ReentrantLock需要手動加鎖和解鎖,且解鎖的操作盡量要放在finally代碼塊中,保證線程正確釋放鎖。ReentrantLock操作較為復雜,但是因為可以手動控制加鎖和解鎖過程,在復雜的并發場景中能派上用場。

  • ReentrantLock和synchronized都是可重入的。synchronized因為可重入因此可以放在被遞歸執行的方法上,且不用擔心線程最后能否正確釋放鎖;而ReentrantLock在重入時要卻確保重復獲取鎖的次數必須和重復釋放鎖的次數一樣,否則可能導致其他線程無法獲得該鎖。

 簡單點說:ReentrantLock操作稍微復雜點,但是能手動加鎖解鎖,操作比較靈活。

具體區別:

1、公平鎖:默認都是非公平鎖,ReentrantLock能實現公平鎖(ReentrantLock lock = new ReentrantLock(true))。說明:公平鎖是指當鎖可用時,在鎖上等待時間最長的線程將獲得鎖的使用權。而非公平鎖則隨機分配這種使用權。

2、相應中斷:ReentrantLock給我們提供了一個可以響應中斷的獲取鎖的方法lockInterruptibly();

3、限時等待:tryLock();

4、等待通知(喚醒)機制:lock.newCondition(); condition.await();condition.signal();可利用實現堵塞隊列機制

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

理塘县| 濮阳县| 柳河县| 桃园县| 临夏市| 泸水县| 福安市| 本溪市| 平塘县| 永泰县| 绥江县| 汤原县| 西安市| 舒兰市| 冷水江市| 吉林省| 蒙自县| 西贡区| 泊头市| 泗水县| 五指山市| 界首市| 泰顺县| 平阳县| 常熟市| 长岛县| 芦溪县| 抚松县| 鄯善县| 洪雅县| 渝北区| 玉环县| 循化| 湛江市| 利津县| 鞍山市| 甘谷县| 琼海市| 任丘市| 鹤壁市| 平遥县|