最贊回答 / jamesdeath123
如果兩個(gè)線程 threadA和 threadB分別開(kāi)始執(zhí)行初始化:threadA: if (instance == null) 是真,然后進(jìn)入條件區(qū)里面里面,在它還沒(méi)有到初始化那一步的時(shí)候,跳到 threadB:這時(shí)(instance==null)對(duì)threadB仍然是真,于是也進(jìn)入到條件區(qū)里面。接下來(lái) threadA和threadB接下來(lái)先后執(zhí)行instance = new ... 就會(huì)分別給兩個(gè)線程兩個(gè)不同的instance了。
2014-10-31