volatile的理解
java内存模型
在多线程编程中,每个线程都会有自己的工作内存,在执行的时候,并不是直接从主内存获取变量的值,而是会从主内存中拷贝一份到自己的工作内存中。
volatile的作用
1.保证了数据的可见性
如果没有valatile关键字,那么线程在更新数据的值后,不会立即写到主存中,那么其他线程可能拿到的值就是以前未修改的值
加了volatile关键字,线程在更新值后,会立刻写到主存中,其他线程会感知到变化,就会重新从主存中获取数据..
2.保证了有序性
加入了volatile,他就会禁止进行指令重排序.