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

溫馨提示×

溫馨提示×

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

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

詳談Lock與synchronized 的區別

發布時間:2020-09-09 15:02:51 來源:腳本之家 閱讀:130 作者:jingxian 欄目:編程語言

1、lock是可中斷鎖,而synchronized 不是可中斷鎖

線程A和B都要獲取對象O的鎖定,假設A獲取了對象O鎖,B將等待A釋放對O的鎖定,

如果使用 synchronized ,如果A不釋放,B將一直等下去,不能被中斷

如果 使用ReentrantLock,如果A不釋放,可以使B在等待了足夠長的時間以后,中斷等待,而干別的事情

ReentrantLock獲取鎖定與三種方式:

a)  lock(),如果獲取了鎖立即返回,如果別的線程持有鎖,當前線程則一直處于休眠狀態,直到獲取鎖

b) tryLock(),如果獲取了鎖立即返回true,如果別的線程正持有鎖,立即返回false;

c) tryLock(long timeout,TimeUnit unit),如果獲取了鎖定立即返回true,如果別的線程正持有鎖,會等待參數給定的時間,在等待的過程中,如果獲取了鎖定,就返回true,如果等待超時,返回false;

d) lockInterruptibly:如果獲取了鎖定立即返回,如果沒有獲取鎖定,當前線程處于休眠狀態,直到或者鎖定,或者當前線程被別的線程中斷

2、synchronized是在JVM層面上實現的,lock是通過代碼實現的,JVM會自動釋放鎖定(代碼執行完成或者出現異常),但是使用Lock則不行,要保證鎖定一定會被釋放,就必須將unLock()放到finally{}中。

3、在資源競爭不是很激烈的情況下,Synchronized的性能要優于ReetrantLock,但是在資源競爭很激烈的情況下,Synchronized的性能會下降幾十倍,但是ReetrantLock的性能能維持常態;

以上這篇詳談Lock與synchronized 的區別就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

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

AI

阜阳市| 晋宁县| 娄烦县| 绥宁县| 开阳县| 进贤县| 屯门区| 禹城市| 韩城市| 绥滨县| 天门市| 曲水县| 西青区| 绥芬河市| 上思县| 新竹市| 呼和浩特市| 德惠市| 安达市| 亳州市| 大丰市| 松江区| 石林| 石屏县| 方城县| 依安县| 时尚| 于都县| 闻喜县| 雷山县| 山东省| 陈巴尔虎旗| 曲麻莱县| 始兴县| 体育| 芜湖县| 赫章县| 巴林右旗| 察雅县| 托克托县| 波密县|