有關單例模式懶漢式安全的問題(全)


    有關單例模式懶漢式安全的問題(全)

單例模式有兩種一種是懶漢式,一種是餓漢式,他們有什么區別呢?

他們建立單例對象的時間不同,懶漢式的特點是延遲加載,當你用到的時候才去建立對象,

還有懶漢式多線程是不安全的,但是他可以有解決辦法,以下內容我會詳細說明。

他們怎么好記呢?

餓漢式,因為餓,所以就它需要迫切的吃東西,所以寫類的時候直接就創建對象。

懶漢式,因為懶,所以它就晚創建對象,特點是延遲加載。當你用到的時候它才會去建立對象。

當多線程的時候懶漢式會有安全問題,但是僅僅在方法前面加一個synchronized又會有效率的

問題,所以一下代碼是一個還算好的代碼,可以用在筆試題上,比其他的更高級


圖1

圖1代碼有兩個好處;

1.解決了多線程安全的問題,

2.用兩個判斷語句提高了效率。

面試的時候偶面試官可能問你,懶漢式有問題嗎?怎么解決?用的是什么鎖?

你的回答;有問題,在多線程的時候會出現安全問題,可以用同步代碼塊或者同步函數解決,但是效率低,用雙重判斷解決低效的問題。用的鎖是本類所屬的字節碼文件對象

一般面試不會問餓漢式

懶漢式的代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM