單例模式應(yīng)用的場景:
(1)資源共享的情況下虱歪,避免由于資源操作時(shí)導(dǎo)致的性能或損耗等。如日志文件搓逾,應(yīng)用配置。
(2)控制資源的情況下杯拐,方便資源之間的互相通信霞篡。如線程池等
餓漢式和懶漢式(多線程)
餓漢式:對(duì)象隨著類的加載就在內(nèi)存中開辟了空間,懶漢式:初始為空端逼,當(dāng)調(diào)用時(shí)才實(shí)例化寇损,節(jié)省空間、提高性能
另外需注意:同步中嵌套同步會(huì)造成死鎖裳食,如下圖:
同步鎖locka內(nèi)嵌套同步鎖lockb
注:JDK1.5以后synchronized被lock取代