美文网首页
volatile原理和使用

volatile原理和使用

作者: 私人云笔记_骁勇波波 | 来源:发表于2022-10-09 15:11 被阅读0次

Volatile实现轻量级的同步锁,原理:

1. 禁止指令重排。

2. 多线程可见性。

java 语言提供了一种稍弱的同步机制,Volatile可以看做是轻量级的 Synchronized,即volatile变量,用来将变量的更新操作通知到其他线程,JVM 保证了每次读变量都从内存中读,跳过 CPU cache 这一步。需要注意的是,像一些a ++ 等非原子性操作,Volatile是无法保证线程安全的。

volatile的应用场景:synchronized关键字是防止多个线程同时执行一段代码,那么就会很影响程序执行效率,而volatile关键字在某些情况下性能要优于synchronized,但是要注意volatile关键字是无法替代synchronized关键字的,因为volatile关键字无法保证操作的原子性。

通常来说,使用volatile必须具备以下2个条件:1. 对变量的写操作不依赖于当前值 2.该变量没有包含在具有其他变量的不变式中

并发编程三大概念:原子性, 可见性,有序性

相关文章

网友评论

      本文标题:volatile原理和使用

      本文链接:https://www.haomeiwen.com/subject/bmeoartx.html