volatile介绍 volatile概述 volatile是比synchronized关键字更轻量级的同步机制,访问volatile变量时不会执行加锁操作,因此不会使执行线程阻塞。 volatile保证可见性和禁止指令重排序,底层是通过“内存屏障”来实现,但不保证原子性。 写入volatile变量相当于退出同步代码块,读取volatile变量相当于进入同步代码块。 volatile的使用场景 对变量的写入操作不依赖变量的当前值,或能确保只有单个线程更新变量的值; 该变量不会与其他状态变量一起纳入不变性条件中;(该变量没有包含在其他变量的不变式中) 在访问变量时不需要加锁。 使用案例 状态标记