volatile是java语言中的一个关键字,常用于并发编程,有两个重要的特点:具有可见性,java虚拟机实现会为其满足Happens before原则;不具备原子性.用法是修饰变量,如:volatile int i. volatile原理 介绍其可见性先从cpu,cpu缓存和内存的关系入手. cpu缓存是一种加速手段,cpu查找数据时会先从缓存中查找,如果不存在会从内存中查找,所以如果缓存中数据和内存中数据不一致,cpu处理数据的一致性就无法保证.从机器语言角度来讲,有一些一致性协议来保证缓存…