在Java语言编写程序中,有时为了提高程序的运行效率,编译器会自动对其进行优化,把经常被访问的变量缓存起来,程序在读取这个变量时有可能会直接从缓存中读取这个值,而不会去内存中读取。
但遇到多线程编程时,变量的值可能因为别的线程而改变了,而缓存的值不会相应改变,从而造成读取的值和实际变量的值不一致.
volatile 是一个类型修饰符,它是被设计用来修饰被不同线程访问和修改的变量。
在Java语言编写程序中,有时为了提高程序的运行效率,编译器会自动对其进行优化,把经常被访问的变量缓存起来,程序在读取这个变量时有可能会直接从缓存中读取这个值,而不会去内存中读取。
volatile 是一个类型修饰符,它是被设计用来修饰被不同线程访问和修改的变量。