設計模式1 單例模式之 懶漢模式和餓漢模式

1.什麼是單例模式併發

單例模式和名字同樣就是隻有單個實例對象存在,有時候咱們只須要一個對象若是每次都new一個同樣的,這樣會給JVM的內存形成負擔從而也會是GC時間變長。好比咱們使用Spring的時候Bean默認都是單例的,由於咱們只要使用裏面的一些統一的執行方法,不須要到多態的特性。性能

在Spring中,bean能夠被定義爲兩種模式:prototype(多例)和singleton(單例)prototype

singleton(單例):只有一個共享的實例存在,全部對這個bean的請求都會返回這個惟一的實例。對象

prototype(多例):對這個bean的每次請求都會建立一個新的bean實例,相似於new。blog

Spring bean 默認是單例模式。內存

2.懶漢模式請求

懶漢能夠理解爲拖延症,要等到deadline的時候纔去處理。也就是再第一次調用的時候採起生成對象。固然這樣最併發放的狀況下會出現多建立對象,加鎖又會影響性能。方法

3.餓漢模式im

餓漢模式就是已經急不可耐了,在系統啓動的時候就要建立出來。這樣的好處就不會出現懶漢模式併發的問題,缺點就是影響啓動時間,若是沒用到的話會佔用內存。img

相關文章
相關標籤/搜索