目录:
定义-挥发物是什么意思?
易失性是Java编程语言中的关键字,它指定可以由多个线程异步更改与类关联的成员变量。 声明成员时,代码中的volatile关键字用作修饰符。 关键字是从根本上保留的单词,在编译器的上下文中具有不同的含义。
每当变量表示某种依赖于环境或系统的变量时,就使用volatile关键字,例如简单的计数器和时钟。
技术百科解释挥发性
volatile关键字可确保对成员变量的每次读取访问均返回其最新值。 当最近的更改是使用其他线程完成的时,此方法无效。 如果成员变量未声明为volatile,则线程将无法识别使用其他线程对其所做的修改。
对于双精度或长整数成员,volatile关键字还确保虚拟机不会生成两个连续的32位写入,而只会创建一个64位写入。 如果这不可行,那么JVM实现将继续确保此功能的原子性,以使旧的下半部分不会被某些volatile double或long的新的上半部分读取。
易失性读写建立了先发生后关系。 在访问易失性对象之前,主存储器与缓存的变量之间将发生同步,就像在进入同步块之前或离开同步块之后发生的一样。 这意味着可以安全地发布易失性对象而无需同步; 也就是说,当线程访问易失性对象时,该对象的成员也会被更新。
当将变量描述为易失性时,JVM和Java编译器将执行以下两项操作。
- 编译器无法最大化与该变量有关的语句和表达式。
- JVM同步变量。
volatile的优点如下:
- 轻巧
- 它导致读写的开销非常小,但仍比锁定快。
- 易挥发物可以抵抗死锁。
![什么是挥发物? -技术百科的定义 什么是挥发物? -技术百科的定义](https://img.theastrologypage.com/img/img/blank.jpg)