多线程编程(八)volatile关键字

volatile关键字

1. 作用

一个共享变量(类的成员变量,类的静态变量)被volatile修饰后,将会存在两层语义

  1. 保证了不同线程对这个变量的可见性,即:一个线程对这个值修改了后,另一个线程like可见(注意:不保证原子性)
  2. 禁止指令重排序(保证变量所在行的有序性)

2. 什么时候用

  1. 对变量的写操作不依赖于当前值
  2. 该变量没有包含在具有其他变量的不变式当中
    如: volatile int i , int j;

猜你喜欢

转载自blog.csdn.net/jinian2016/article/details/109703844