出現(xiàn)線程安全問(wèn)題的原因一般都是三個(gè)原因:
1、 線程切換帶來(lái)的原子性問(wèn)題
解決辦法:使用多線程之間同步synchronized或使用鎖(lock)。
2、 緩存導(dǎo)致的可見(jiàn)性問(wèn)題
解決辦法:synchronized、volatile、LOCK,可以解決可見(jiàn)性問(wèn)題
3、 編譯優(yōu)化帶來(lái)的有序性問(wèn)題
解決辦法:Happens-Before 規(guī)則可以解決有序性問(wèn)題