1 記憶體可見性(Memory Visibility)是指當某個線程正在使用對象狀态而另一個線程在同時修改該狀态,需要確定當一個線程修改了對象狀态後,其他線程能夠看到發生的狀态變化。
2 可見性錯誤是指當讀操作與寫操作在不同的線程中執行時,我們無法確定執行讀操作的線程能适時地看到其他線程寫入的值,有時甚至是根本不可能的事情。我們可以通過同步來保證對象被安全地釋出。除此之外我們也可以使用一種更加輕量級的 volatile 變量。
Java 提供了一種稍弱的同步機制,即 volatile 變量,用來確定将變量的更新操作通知到其他線程。
可以将 volatile 看做一個輕量級的鎖,但是又與鎖有些不同:
對于多線程,不是一種互斥關系
不能保證變量狀态的“原子性操作”
1,不使用volatile

2,使用volatile
傳回結果: