對synchronized(x) 的分析

1、synchronized(this) this代表當前對象,此寫法阻塞所有需要獲取當前對象鎖的同步方法和同步代碼塊

2、synchronized(class) class代表當前類文件,會阻塞所有類的實例對象的同步方法和同步代碼塊,等同於 synchronized static方法

3、String對象常量池特性(jvm會緩存string對象,如果兩個string對象的值一樣,那麼Java不會創建第二個對象並使其直接指向第一個對象的內存,導致兩個對象指向同一片內存),所以synchronized(object),object最好避免使用string對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章