synchronized都拼錯(cuò)了,你怎么運(yùn)行的。
在你的代碼中,你只是說不用volatile關(guān)鍵字修飾變量singleton,但是創(chuàng)建對(duì)象的過程你加鎖了呀,這怎么可能會(huì)出現(xiàn) singleton == null 的情況呢,還有你的代碼只有代碼1、2,代碼3在哪呢?
很明顯這就不是你自己寫的
Java volatile如何防止指令重排序voliate關(guān)鍵字的兩個(gè)作用 1、 保證變量的可見性:當(dāng)一個(gè)被volatile關(guān)鍵字修飾的變量被一個(gè)線程修改的時(shí)候,其他線程可以立刻得到修改之后的結(jié)果。當(dāng)一個(gè)線程向被vol...