面試官:說說雙重檢查加鎖單例模式爲什麼兩次if判斷?

內層判斷:如果內層不加if判斷,就會實例化多次,這是顯而易見的,這就違背了單例模式的單例二字。 外層判斷:試圖想想一種情況,當線程1走完了內層判斷,對象實例化了,線程3也調用了getInstace函數,如果沒有加外層的判斷線程3還是要繼續等待線程2的完成,而加上外層判斷,就不需要等待了,直接返回了實例化的對象。 我的理解:外層的判斷是爲了提高效率,裏層的判斷就是第一次實例化需要。
相關文章
相關標籤/搜索