爲什麼包裝類不適合做鎖的對象

「Integer 和 String 類型的對象不適合做鎖」,其實基本上所有的基礎類型的包裝類都不適合做鎖,因爲它們內部用到了享元模式,這會導致看上去私有的鎖,其實是共有的;享元模式裏面對數據進行了緩存,會導致好幾部分代碼擁有同一把鎖: 例子: a和b就是同一把鎖(看源碼【對常用的數據進行緩存】) class A { Long a = new Long(2); synchronized(a){ //
相關文章
相關標籤/搜索