Java類鎖和對象鎖


 

 

一、類鎖和對象鎖

  1. 類鎖:在代碼中的方法上加了static和synchronized的鎖,或者synchronized(xxx.class)

  2. 對象鎖:在代碼中的方法上加了synchronized的鎖,或者synchronized(this)的代碼段

  3. 方法鎖和私有鎖:都屬於對象鎖
    私有鎖:在類內部聲明一個私有屬性如private Object lock,在需要加鎖的代碼段synchronized(lock)

二、使用注意

  1. 類鎖和對象鎖不會產生競爭,二者的加鎖方法不會相互影響。

  2. 私有鎖和對象鎖也不會產生競爭,二者的加鎖方法不會相互影響。

  3. synchronized直接加在方法上和synchronized(this)都是對當前對象加鎖,二者的加鎖方法夠成了競爭關系,同一時刻只能有一個方法能執行。

  4. 一個實例對象一把鎖,多個實例對象多把鎖.多線程解決高並發只能通過一個加鎖實例實現

三、參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM