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

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