java基礎---對象鎖和類鎖的區別


synchronized 加到 static 方法前面是給class 加鎖,即類鎖;而synchronized 加到非靜態方法前面是給對象上鎖。
對象鎖和類鎖是不同的鎖,所以多個線程同時執行這2個不同鎖的方法時,是異步的。
類鎖對該類的所有對象都能起作用,而對象鎖不能。

大白話就是:一個線程執行同步的靜態方法后,另一個線程就得等第一個線程執行完這個方法后才能繼續執行。但是第二個線程可以異步地去執行非靜態方法。
 


免責聲明!

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



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