请教一个 Java volatile 字段可见性的问题
資深大佬 : dengsq 0
看一个讲解 volatile 可见性教学视频的时候,发现视频中的代码和我运行的效果不太一样,有些困惑。
代码大致如下: https://gist.github.com/dsq123/e57514ca51c875b75d0ea311bb556d92
视频中运行的效果是: 1.number 字段不加 volatile,主线程的循环会一直运行,读不到 number 字段的改变。 2.而加了 volatile 后,number 字段就可见了,程序则会正常结束。
我测试的效果是,不加 volatile 关键字的情况下,主线程依旧可以获取到 AAA 线程对 number 的修改,这是为何?
大佬有話說 (12)