欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

volatile关键字 博客分类: Java-并发  

程序员文章站 2024-02-14 20:45:22
...

        轻量级的synchronized,保证了共享变量的变化对其他线程可见。

适用对象

        存在于堆上的共享变量

适用场景

        多线程环境,特别是只有一个写线程多个读线
实现原理

        线程在读取共享变量时,会首先读取该变量的副本存放于自己的本地栈中,并在自己的本地栈中进行修改(对于更新操作),之后,在某个时候再将这个更新的值刷新回主存(具体的某个时候,有JVM自己决定)。因此,如果多个线程要读取这个修改的值,更新不会立即刷新回主存,可能不同线程读到的值就不一样。声明为volatile的变量保证了线程更新该值之后,立即刷新回缓存,并且存在该共享变量的一个状态标识来表示该值是否已经失效,因此,如果该标志位标识值被更新,就强制其他读线程从主存读取更新的值。