課程
/后端開發
/Java
/模式的秘密---單例模式
采用synchronized? 關鍵詞修飾與不采用synchronized? 關鍵詞修飾有什么區別?
2016-07-29
源自:模式的秘密---單例模式 3-1
正在回答
thread 1和thead2 對于 條件判斷 ,有可能都判定if(instance==null)為真!,這樣就會生成兩個對象
Cphantom 說的準確!
因為這個類在加載的時候就實例化了,就算thread1和thread2同時獲取它,取到的是類加載時實例化的那個變量的值,所以說是線程安全的;而懶漢式線程不安全,因為有可能thread1在if(instance==null)判斷為真時進入了if體里但又沒開始實例化,而這時thread2也進來了,最終就會有2個實例了。
慕粉16012980
0x0wh04m1 回復 慕粉16012980
sd1700092
慕后端244733 回復 sd1700092
舉報
單例模式是在Java中最重要模式之一,讓我們揭開單例模式神秘面紗
2 回答懶漢模式線程安全問題
2 回答單例模式懶漢式和餓漢式,應用的場景有什么不同呢?
1 回答單例模式之餓漢模式不能將構造方法私有化
1 回答關于懶漢模式
1 回答線程不安全
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-11-03
thread 1和thead2 對于 條件判斷 ,有可能都判定if(instance==null)為真!,這樣就會生成兩個對象
2016-11-03
Cphantom 說的準確!
2016-08-19
因為這個類在加載的時候就實例化了,就算thread1和thread2同時獲取它,取到的是類加載時實例化的那個變量的值,所以說是線程安全的;而懶漢式線程不安全,因為有可能thread1在if(instance==null)判斷為真時進入了if體里但又沒開始實例化,而這時thread2也進來了,最終就會有2個實例了。