国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Lock與synchronized 的比較學習

2019-11-10 19:45:07
字體:
來源:轉載
供稿:網友

一些比較

Lock是一個接口,而synchronized是java中的關鍵字,synchronized是內置的語言實現;synchronized在發生異常時,會自動釋放線程占有的鎖,因此不會導致死鎖現象發生;而Lock在發生異常時,如果沒有主動通過unLock()去釋放鎖,則很可能造成死鎖現象,因此使用Lock時需要在finally塊中釋放鎖;Lock可以讓等待鎖的線程響應中斷,而synchronized卻不行,使用synchronized時,等待的線程會一直等待下去,不能夠響應中斷;通過Lock可以知道有沒有成功獲取鎖,而synchronized卻無法辦到。

如果競爭資源不激烈,兩者的性能是差不多的,而當競爭資源非常激烈時(即有大量線程同時競爭),此時Lock的性能要遠遠優于synchronized;

如何選擇

一般情況下優先選用synchronized,在一些情況下考慮用Lock比如,需要鎖等待,鎖中斷,高度爭用,讀寫鎖等情況下。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浦县| 邯郸市| 茌平县| 微博| 肇源县| 阜阳市| 寿宁县| 依兰县| 瓮安县| 余庆县| 平谷区| 穆棱市| 泌阳县| 松潘县| 辛集市| 天等县| 河池市| 广宗县| 昆明市| 平阴县| 山西省| 青海省| 溧水县| 绵阳市| 安吉县| 雅安市| 剑川县| 化隆| 辽阳县| 松桃| 曲周县| 周至县| 托里县| 和田县| 余庆县| 密云县| 漯河市| 普兰店市| 曲周县| 曲周县| 临夏市|