可见性问题 可见性是指一个线程对共享变量进行了修改,其他线程能够立马看到该共享变量更新后的值,这视乎是一个合情合理的要求,但是在多线程的情况下,可能就要让你失望了,由于每个 CPU 都有自己的缓存,每个线程使用的可能是不同的 CPU ,这就会出现数据可见性的问题,先来看看下面这张图: 对于一个共享变量 count ,每个 CPU 缓存中都有一个 count 副本,每个线程对共享变量 count 的操作的只能操作自己所在 CPU 缓存中的副本,不能直接操作主存或者其他 CPU 缓存中的副本,这也就…