在Java内存模型中,线程共享的资源放在主存中,每个线程同时拥有自己的本地内存。而本地内存中存放了被该线程使用到的主内存变量的拷贝。
线程对变量的所有操作都必须在本地工作内存中进行,而不能直接读写主内存中的变量。由此可能导致线程间无法读取变量的最新状态。
被volatile修饰的变量在修改时会被强制写到主存中,从而保证该变量对其他线程的可见性。
在Java内存模型中,线程共享的资源放在主存中,每个线程同时拥有自己的本地内存。而本地内存中存放了被该线程使用到的主内存变量的拷贝。
线程对变量的所有操作都必须在本地工作内存中进行,而不能直接读写主内存中的变量。由此可能导致线程间无法读取变量的最新状态。
被volatile修饰的变量在修改时会被强制写到主存中,从而保证该变量对其他线程的可见性。