Java并发面试题:(五)volatile关键字

volatile 是什么

一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:

1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线

程来说是立即可见的,volatile关键字会强制将修改的值立即写入主存。

2)禁止进行指令重排序。

volatile的作用

volatile作用

Volatile 一般用于 状态标记量 和 单例模式的双检锁

volatile的一个重要作用就是和CAS结合,保证了原子性,详细的可以参见java.util.concurrent.atomic 包下的类,比如 AtomicInteger 。

相关推荐
坐吃山猪11 分钟前
SpringBoot01-配置文件
java·开发语言
晚风(●•σ )13 分钟前
C++语言程序设计——06 字符串
开发语言·c++
我叫汪枫35 分钟前
《Java餐厅的待客之道:BIO, NIO, AIO三种服务模式的进化》
java·开发语言·nio
Nicole-----36 分钟前
Python - Union联合类型注解
开发语言·python
晚云与城40 分钟前
今日分享:C++ -- list 容器
开发语言·c++
yaoxtao44 分钟前
java.nio.file.InvalidPathException异常
java·linux·ubuntu
兰雪簪轩1 小时前
分布式通信平台测试报告
开发语言·网络·c++·网络协议·测试报告
FPGAI2 小时前
Qt编程之信号与槽
开发语言·qt
Swift社区2 小时前
从 JDK 1.8 切换到 JDK 21 时遇到 NoProviderFoundException 该如何解决?
java·开发语言
0wioiw03 小时前
Go基础(④指针)
开发语言·后端·golang