Java 进阶之路(二):volatile、synchronized 和内存可见性

上一篇说了线程池,这一篇说可见性。先抛结论:volatile 解决的是可见性和有序性,不解决原子性。

一个经典的反例

两个线程各自 i++ 一万次,结果几乎永远不会是两万。原因不是锁,是 i++ 本身是读-改-写三步。

happens-before

理解 JMM 的钥匙是 happens-before 原则……

(写作中,本周更新完。)