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

volatile 是什么

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

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

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

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

volatile的作用

volatile作用

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

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

相关推荐
香蕉可乐荷包蛋18 分钟前
Python面试问题
开发语言·python·面试
ErizJ28 分钟前
Golang|分布式索引架构
开发语言·分布式·后端·架构·golang
.生产的驴28 分钟前
SpringBoot 接口国际化i18n 多语言返回 中英文切换 全球化 语言切换
java·开发语言·spring boot·后端·前端框架
Howard_Stark32 分钟前
Spring的BeanFactory和FactoryBean的区别
java·后端·spring
饮长安千年月33 分钟前
学生管理系统审计
java·网络安全·代码审计
八股文领域大手子36 分钟前
深入浅出限流算法(三):追求极致精确的滑动日志
开发语言·数据结构·算法·leetcode·mybatis·哈希算法
-曾牛41 分钟前
Spring Boot中@RequestParam、@RequestBody、@PathVariable的区别与使用
java·spring boot·后端·intellij-idea·注解·spring boot 注解·混淆用法
新时代苦力工1 小时前
处理对象集合,输出Map<String, Map<String, List<MyObject>>>格式数据,无序组合键处理方法
java·数据结构·list
六边形6661 小时前
Vue中的 ref、toRef 和 toRefs 有什么区别
前端·vue.js·面试
niesiyuan0001 小时前
MAC如何安装多版本jdk(以8,11,17为例)
java