通过前面对JMM的介绍,我们知道
各个线程对主内存中共享变量的操作,都是各个线程各自拷贝到自己的工作内存进行操作后再写回到主内存。
这就可能存在一个线程AAA修改了共享变量X的值,但还没写回主内存时,另外一个线程又对主内存中同一个共享变量X进行操作,但此时A线程中共享变量X的值对B线程来说并不可见,这种工作内存与主内存同步延迟的现象就造成了可见性问题
通过前面对JMM的介绍,我们知道
各个线程对主内存中共享变量的操作,都是各个线程各自拷贝到自己的工作内存进行操作后再写回到主内存。
这就可能存在一个线程AAA修改了共享变量X的值,但还没写回主内存时,另外一个线程又对主内存中同一个共享变量X进行操作,但此时A线程中共享变量X的值对B线程来说并不可见,这种工作内存与主内存同步延迟的现象就造成了可见性问题