亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

老師說餓漢模式是線程安全的,為什么沒有用synchronized 關鍵詞修飾?

采用synchronized? 關鍵詞修飾與不采用synchronized? 關鍵詞修飾有什么區別?

正在回答

3 回答

thread 1和thead2 對于 條件判斷 ,有可能都判定if(instance==null)為真!,這樣就會生成兩個對象

1 回復 有任何疑惑可以回復我~

Cphantom 說的準確!

0 回復 有任何疑惑可以回復我~

因為這個類在加載的時候就實例化了,就算thread1和thread2同時獲取它,取到的是類加載時實例化的那個變量的值,所以說是線程安全的;而懶漢式線程不安全,因為有可能thread1在if(instance==null)判斷為真時進入了if體里但又沒開始實例化,而這時thread2也進來了,最終就會有2個實例了。

17 回復 有任何疑惑可以回復我~
#1

慕粉16012980

這種情況,程序是會報錯還是生成2個對象?
2017-04-06 回復 有任何疑惑可以回復我~
#2

0x0wh04m1 回復 慕粉16012980

2個對象
2017-05-25 回復 有任何疑惑可以回復我~
#3

sd1700092

但這種情況概率很低吧,有必要這么慌張嗎!
2017-07-14 回復 有任何疑惑可以回復我~
#4

慕后端244733 回復 sd1700092

真正debug起來你就能體會到
2018-06-01 回復 有任何疑惑可以回復我~
查看1條回復

舉報

0/150
提交
取消

老師說餓漢模式是線程安全的,為什么沒有用synchronized 關鍵詞修飾?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號