volatile 修饰符的有过什么实践?

Posted programb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了volatile 修饰符的有过什么实践?相关的知识,希望对你有一定的参考价值。

一种实践是用 volatile 修饰 long  double 变量使其能按原子类型来读写

double  long 都是 64 位宽因此对这两种类型的读是分为两部分的第一次 

读取第一个 32 然后再读剩下的 32 这个过程不是原子的 Java  

volatile 型的 long  double 变量的读写是原子的。volatile 修复符的另一个 

作用是提供内存屏障(memory barrier),例如在分布式框架中的应用简单的 

就是当你写一个 volatile 变量之前,Java 内存模型会插入一个写屏障(write

barrier),读一个 volatile 变量之前会插入一个读屏障(read barrier)。 

思就是说在你写一个 volatile 域时能保证任何线程都能看到你写的值同时

在写之前也能保证任何数值的更新对所有线程是可见的因为内存屏障会将其 

他所有写的值更新到缓存

以上是关于volatile 修饰符的有过什么实践?的主要内容,如果未能解决你的问题,请参考以下文章

java中Volatile修饰符的含义

对于C语言啥时候应该使用volatile修饰符

什么是修饰符?它有什么作用?举例说明

“volatile”这个关键字

访问修饰符的Scala参数?

JAVA基础学习-修饰符的使用