博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
volatile
阅读量:6832 次
发布时间:2019-06-26

本文共 349 字,大约阅读时间需要 1 分钟。

hot3.png

volatile [ˈvɒlətaɪl]

解释

volatile能保证线程之间的可见性,并且禁止指令重排序优化可见性:多线程共享变量时,一个线程修改了变量值后,对另一个线程是可见的

原理

看下图: image

在同一块内存中,线程1和2都有自己的本地内存,当他们共享变量(存在主内存中)时,都从主内存获取变量值,拷贝到自己的本地内存中进行处理。如果将变量申明为volatile,线程1修改了变量后,会通知到主内存,而其他线程会发现自己本地内存中的变量状态变为失效,从而从主内存中获取变量值。

与synchronized区别

synchronized保证可见性和原子性volatile只保证可见性,不保证原子性

转载于:https://my.oschina.net/yimingkeji/blog/2873135

你可能感兴趣的文章
jvm远程监控配置,以openfire为例,jmx方式监控
查看>>
Linux 系统性能分析工具sar一
查看>>
关于客户端不能连接mysql服务器的解决办法
查看>>
SQL Server 数据加密功能解析
查看>>
Android 屏蔽recent按键 ,Home按键,Recent按键的监听可以用广播,还有开机启动app...
查看>>
使用maven将jar包生成maven依赖及pom到本地仓库
查看>>
【iOS-Cocos2d游戏开发之十三】CCSprite利用Bezier(贝塞尔)抛物线并同时播放两个Action动作!...
查看>>
帕特•基辛格:EMC要成为最优秀的数据中心架构厂商
查看>>
LINUX下WEBLOGIC卸载
查看>>
YAHOO 工程师CSS初始化代码
查看>>
个人--理财经验001-2015.07.25
查看>>
单例模式Singleton
查看>>
XSS研究1-来自内部的XSS***
查看>>
小白学习大数据之路——在docker集群上搭建spark集群
查看>>
Scala --- 第二章 控制结构和函数
查看>>
ViewPager Fragment 优化卡顿问题
查看>>
Promise
查看>>
CSS字体大小: em与px、pt、百分比之间的对比
查看>>
【更新】3D造型引擎3D ACIS Modeling 发布2018.1.0版本
查看>>
maven私服deploy时报Return code is: 401, ReasonPhrase: Unauthorized
查看>>