没加volatile关键字运行结果:main线程一直在while里面等待,没有被告知number已经被改成了60
添加volatile关键字的运行结果:main可以感知了number已经在AAA线程被修改成了60
4、验证volatile不保证原子性最终结果小于了20000,说明volatile不保证原子性。
线程疯抢导致读写覆盖,所以最终的值小于了20000
5、volatile不保证原子性解决--i++,在多线程下,使用AtomicInteger(CAS) 6、JMM有序性理解和volatile禁止指令重排指令重排后,a的值可能会是5.
volatile指令重排
7.线程安全保障的总结



