写了个类 测试volatile关键字提供线程间可视性
不考虑主线程的情况下 现在有俩个线程 内存模型 如图 对吧?
我在run里修改了++a 然后睡眠一秒 睡眠结束前 ++a的操作只在工作内存里对吧?
现在应该还没有写回主存,这时另一个线程 读自己线程内存里的 a = 1 ,++a 为2
两个线程都结束睡眠后 将a写回主存 主线程得到的a 应该 是 2 吧?
但是结果是3
volatile 不能保证原子性