1:作用
用volatile修饰的变量对所有线程的可见性。
2:工作内存与主内存
一般变量:优先读取工作内存,若不存在,则总从主内存中copy一份到工作内存,读写操作都只修改工作内存;
volatile修饰的变量:当一个线程修改了变量的值,新的值会立刻同步到主内存当中。而其他线程读取这个变量的时候,也会从主内存中拉取最新的变量值。
3:volatile修饰的变量并不保证线程安全
4:什么时候适合用volatile呢?
1.运行结果并不依赖变量的当前值,或者能够确保只有单一的线程修改变量的值。
2.变量不需要与其他的状态变量共同参与不变约束。
网友评论