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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Lock與synchronized 的比較學(xué)習(xí)

2019-11-10 18:54:43
字體:
供稿:網(wǎng)友

一些比較

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

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

如何選擇

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


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 渭南市| 汾西县| 平顶山市| 徐闻县| 临西县| 蒲江县| 明光市| 凉山| 都兰县| 康马县| 织金县| 阜宁县| 嘉禾县| 宁都县| 杨浦区| 福海县| 九江县| 西青区| 恭城| 泰来县| 济南市| 西安市| 土默特右旗| 广东省| 洛阳市| 简阳市| 广宗县| 锦屏县| 新安县| 芦溪县| 屏东市| 武鸣县| 洱源县| 凭祥市| 中宁县| 兴海县| 香港 | 克东县| 平南县| 荥经县| 丁青县|