課程
/后端開發(fā)
/Java
/模式的秘密---單例模式
老師可否說明一下 為何 懶漢 線程不安全?
2014-10-31
源自:模式的秘密---單例模式 3-1
正在回答
所以 一般加個鎖。?synchronized
瘋子520520
如果兩個線程 threadA和 threadB分別開始執(zhí)行初始化:
threadA: if (instance == null) 是真,然后進(jìn)入條件區(qū)里面里面,在它還沒有到初始化那一步的時候,跳到 threadB:這時(instance==null)對threadB仍然是真,于是也進(jìn)入到條件區(qū)里面。接下來 threadA和threadB接下來先后執(zhí)行instance = new ... 就會分別給兩個線程兩個不同的instance了。
建議你看一下多線程的相關(guān)課程
舉報
單例模式是在Java中最重要模式之一,讓我們揭開單例模式神秘面紗
1 回答在哪里可以獲取模式?
2 回答為什么s1=s2?
1 回答單例模式一般用于什么情況
1 回答單例模式原理疑問
7 回答我是新學(xué)java的學(xué)生,但是嚴(yán)重感覺到你講的真是粗糙,就講兩種演示代碼,不講應(yīng)用???算了,我還是去看書吧
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-02-16
所以 一般加個鎖。?synchronized
2014-12-03
如果兩個線程 threadA和 threadB分別開始執(zhí)行初始化:
threadA: if (instance == null) 是真,然后進(jìn)入條件區(qū)里面里面,在它還沒有到初始化那一步的時候,跳到 threadB:這時(instance==null)對threadB仍然是真,于是也進(jìn)入到條件區(qū)里面。接下來 threadA和threadB接下來先后執(zhí)行instance = new ... 就會分別給兩個線程兩個不同的instance了。
2014-10-31
建議你看一下多線程的相關(guān)課程