当前位置:网站首页>详解Volatile关键字
详解Volatile关键字
2022-07-01 21:43:00 【键盘歌唱家】
一、简介
1.Volatile内存语义
1.当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值立即刷新回主内存中。
2.当读一个volatile变量时,JMM会把该线程对应的本地内存设置为无效,重新回到主内存中读取最新共享变量。
3.所以volatile的写内存语义是直接刷新到主内存中,读的内存语义是直接从主内存中读取。
2.两大特性
1.可见性 :写完后立即刷新回主内存并及时发出通知,大家可以去主内存拿最新版,前面的修改对后面所有线程可见!
2.禁止指令重排:重排序是指编译器和处理器为了优化程序性能而对指令序列进行重新排序的一种手段,有时候会改变程序语句的先后顺序。不存在数据依赖关系,可以重排序;存在数据依赖关系,禁止重排序。但重排后的指令绝对不能改变原有的串行语义!这点在并发设计中必须要重点考虑!
3.上面的禁止指令重排是基于内存屏障实现的:
粗分两种
1.读屏障:在读指令之前插入读屏障,让工作内存或CPU高速缓存当中的缓存数据失效,重新回到玉内存中获取最新数据。
2.写屏障:在写指令之后插入写屏障,强制把写缓冲区的数据刷回到主内存中。
在Java层面的Unsafe类就有以下的native方法:
边栏推荐
- I received a letter from CTO inviting me to interview machine learning engineer
- MySQL系列之事务日志Redo log学习笔记
- Can you get a raise? Analysis on gold content of PMP certificate
- Airserver mobile phone third-party screen projection computer software
- CNN卷积神经网络原理讲解+图片识别应用(附源码)[通俗易懂]
- TOPS,处理器运算能力单位、每秒钟可进行一万亿次
- 使用闭包实现点击按钮切换 toggle
- 微软、哥伦比亚大学|GODEL:目标导向对话的大规模预训练
- [intelligent QBD risk assessment tool] Shanghai daoning brings you leanqbd introduction, trial and tutorial
- 函数基本学习之一
猜你喜欢
Spark interview questions
[live broadcast review] the first 8 live broadcasts of battle code Pioneer have come to a perfect end. Please look forward to the next one!
[noip2013] building block competition [noip2018] road laying greed / difference
最近公共祖先离线做法(tarjan)
【直播回顾】战码先锋首期8节直播完美落幕,下期敬请期待!
MySQL series transaction log redo log learning notes
基于LSTM模型实现新闻分类
Training on the device with MIT | 256Kb memory
微软、哥伦比亚大学|GODEL:目标导向对话的大规模预训练
Is PMP certificate really useful?
随机推荐
业务可视化-让你的流程图'Run'起来
【STM32】STM32CubeMX教程二–基本使用(新建工程点亮LED灯)
测试撤销1
PMP证书真的有用吗?
Electron学习(三)之简单交互操作
MySQL learning notes - SQL optimization of optimization
企业架构与项目管理的关联和区别
【深度学习】利用深度学习监控女朋友的微信聊天?
PMP与NPDP之间的区别是什么?
MIT|256KB 内存下的设备上训练
杰理之烧录都使用 VBAT 供电,供电电压 4.2V【篇】
Design and practice of new generation cloud native database
List announced | outstanding intellectual property service team in China in 2021
LIS (longest ascending subsequence) problem that can be understood [easy to understand]
Airserver mobile phone third-party screen projection computer software
matlab遍历图像、字符串数组等基本操作
Tops, the unit of computing power of the processor, can be carried out 1 trillion times per second
linux下清理系统缓存并释放内存
Introduction and download of the latest version of airserver2022
一次调试去了解redis集群的slot机制