中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

相親網(wǎng)站怎么做企業(yè)線上培訓(xùn)平臺(tái)有哪些

相親網(wǎng)站怎么做,企業(yè)線上培訓(xùn)平臺(tái)有哪些,如何用自己電腦做網(wǎng)站服務(wù)器,海外購(gòu)物電商平臺(tái)單例模式是設(shè)計(jì)模式之一,能保證某個(gè)類在程序中只存在唯一一份實(shí)例,而不會(huì)創(chuàng)建出多個(gè)實(shí)例 單例模式的具體實(shí)現(xiàn)方法有很多,最常見(jiàn)的是 “餓漢” 和 “懶漢” 兩種。 餓漢模式 class Singlenton{private static Singlenton instance new Sin…

單例模式是設(shè)計(jì)模式之一,能保證某個(gè)類在程序中只存在唯一一份實(shí)例,而不會(huì)創(chuàng)建出多個(gè)實(shí)例

單例模式的具體實(shí)現(xiàn)方法有很多,最常見(jiàn)的是 “餓漢”“懶漢” 兩種。

餓漢模式

class Singlenton{private static Singlenton instance = new Singlenton();public static Singlenton getInstance(){return instance;}//在此類的外面無(wú)法調(diào)用構(gòu)造方法,無(wú)法創(chuàng)建實(shí)例private Singlenton(){}
}

懶漢模式

類加載的時(shí)候不創(chuàng)建實(shí)例,第一次使用的時(shí)候才創(chuàng)建實(shí)例

單線程版

class Singletonlazy{private static Singletonlazy instance = null;public static Singletonlazy getInstance(){if(instance==null){instance = new Singletonlazy();}return instance;}private Singletonlazy(){}
}

多線程版

相比單線程版,多線程版考慮了線程安全問(wèn)題

線程安全問(wèn)題發(fā)生在首次創(chuàng)建實(shí)例時(shí),可能多個(gè)線程同時(shí)調(diào)用getInstance方法,就可能導(dǎo)致創(chuàng)建了多個(gè)實(shí)例。

加上 synchronized 可以改善線程安全問(wèn)題

class Singletonlazy{private static Singletonlazy instance = null;private static Object locker = new Object();public static Singletonlazy getInstance(){synchronized (locker){if(instance==null){instance = new Singletonlazy();}}return instance;}private Singletonlazy(){}
}

多線程版優(yōu)化

上面的代碼雖然說(shuō)解決了線程安全問(wèn)題,但是只要調(diào)用了getInstance方法,就會(huì)觸發(fā)加鎖操作,產(chǎn)生阻塞,影響性能。

我們想要優(yōu)化,就要在加鎖之前判定一下是否需要加鎖。

外層的if(instance==null)是判斷實(shí)例有沒(méi)有創(chuàng)建

內(nèi)層的if(instance==null)進(jìn)一步判斷實(shí)例有沒(méi)有創(chuàng)建,因?yàn)樵谕鈱?if 和加鎖之間,切換了線程并創(chuàng)建了實(shí)例,此時(shí)切換到原來(lái)的線程如果沒(méi)有判斷,就會(huì)創(chuàng)建出多個(gè)實(shí)例。

但是光加了一個(gè)外層 if 還不夠,此時(shí)可能因?yàn)橹噶钪嘏判蛞鸬木€程安全問(wèn)題

instance = new Singletonlazy();分為三條指令
  1. 分配內(nèi)存空間
  2. 執(zhí)行構(gòu)造方法
  3. 內(nèi)存空間的地址賦值給引用變量

編譯器可能按照 1 2 3 的順序來(lái)執(zhí)行,也可能按照 1 3 2 的順序執(zhí)行

當(dāng)按照 1 3 2的順序執(zhí)行時(shí),由于 3 是把內(nèi)存空間的地址賦值給引用變量,所以此時(shí) instance現(xiàn)在不為 null 了,此時(shí)如果其他線程判斷外層 if 時(shí),由于instance不為null了,所以直接返回instance,但是此時(shí)instance指向沒(méi)有初始化,上面值全是0的內(nèi)存,此時(shí)getInstance到的就是個(gè)錯(cuò)誤的值,會(huì)引發(fā)一系列不可預(yù)期的情況。

此時(shí),我們用volatile 關(guān)鍵字告知編譯器此變量指令不可重排序即可解決。

class Singletonlazy{private static volatile Singletonlazy instance = null;private static Object locker = new Object();public static Singletonlazy getInstance(){if(instance==null){synchronized (locker){if(instance==null){instance = new Singletonlazy();}}}return instance;}private Singletonlazy(){}
}

http://www.risenshineclean.com/news/40904.html

相關(guān)文章:

  • 企業(yè)信息管理系統(tǒng)的發(fā)展歷程網(wǎng)站seo優(yōu)化方法
  • 網(wǎng)站建設(shè) 珠海營(yíng)銷培訓(xùn)課程有哪些
  • 城關(guān)區(qū)建設(shè)局網(wǎng)站百度廣告費(fèi)一般多少錢
  • 手機(jī)網(wǎng)站開(kāi)發(fā) pdf最新旅游熱點(diǎn)
  • 王妃貌美還狠兇搜索引擎優(yōu)化的作用
  • 家裝效果圖seo管理系統(tǒng)培訓(xùn)運(yùn)營(yíng)
  • 網(wǎng)站制作和網(wǎng)頁(yè)制作區(qū)別上海百度推廣優(yōu)化排名
  • flash可以做網(wǎng)站seo優(yōu)化運(yùn)營(yíng)
  • 柳市那些做網(wǎng)站的公司定制網(wǎng)站和模板建站
  • 做網(wǎng)站經(jīng)常加班還是app武漢seo優(yōu)化
  • 商業(yè)網(wǎng)站建設(shè)視頻教程關(guān)鍵詞排名優(yōu)化教程
  • 公司網(wǎng)站建設(shè)的系統(tǒng)功能需求分析安徽seo推廣
  • 和平區(qū)網(wǎng)站建設(shè)房地產(chǎn)估價(jià)師考試
  • 經(jīng)營(yíng)性網(wǎng)站必須備案排名優(yōu)化關(guān)鍵詞
  • 這么做3d展示網(wǎng)站優(yōu)化網(wǎng)站排名的方法
  • 網(wǎng)站建設(shè)完整南寧白帽seo技術(shù)
  • 手工企業(yè)網(wǎng)站模板企業(yè)網(wǎng)站制作公司
  • 淮安哪里有做網(wǎng)站的北京網(wǎng)站seo技術(shù)廠家
  • 網(wǎng)站改版方案原則百度關(guān)鍵詞搜索量排名
  • 網(wǎng)站建設(shè)財(cái)務(wù)上怎么處理寧波seo推廣推薦
  • 網(wǎng)站怎么解析到域名推廣類軟文
  • 免費(fèi)word模板下載哪個(gè)網(wǎng)站網(wǎng)站建設(shè)方案書范文
  • wordpress 整站音樂(lè)看廣告收益的正規(guī)平臺(tái)
  • 貴溪市城鄉(xiāng)建設(shè)局網(wǎng)站推廣公眾號(hào)的9種方法
  • 網(wǎng)站建設(shè)和購(gòu)買區(qū)別網(wǎng)絡(luò)推廣100種方法
  • 動(dòng)態(tài)網(wǎng)站建設(shè)的一般步驟免費(fèi)的h5制作網(wǎng)站
  • wordpress恢復(fù)源代碼willfast優(yōu)化工具下載
  • 電子商務(wù)網(wǎng)站設(shè)計(jì)畢業(yè)設(shè)計(jì)論文競(jìng)價(jià)推廣員月掙多少
  • 網(wǎng)站怎么做優(yōu)化排名推廣下載
  • 福州外包加工網(wǎng)廈門seo優(yōu)化推廣