社区
Java SE
帖子详情
关于volatile的疑惑
zzywjing
2018-07-02 03:29:20
看资料说:
使用volatile必须具备以下2个条件:
1)对变量的写操作不依赖于当前值
2)该变量没有包含在具有其他变量的不变式中
谁能用白话解释下这两句话是什么意思呢,有点看不明白
...全文
186
4
打赏
收藏
关于volatile的疑惑
看资料说: 使用volatile必须具备以下2个条件: 1)对变量的写操作不依赖于当前值 2)该变量没有包含在具有其他变量的不变式中 谁能用白话解释下这两句话是什么意思呢,有点看不明白
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
月凉西厢
2018-07-03
打赏
举报
回复
一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:
1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。
2)禁止进行指令重排序。
oyljerry
2018-07-02
打赏
举报
回复
因为volatile不能保证原子性,所以变量的要求就是不会有非原子操作
verejava
2018-07-02
打赏
举报
回复
1)对变量的写操作不依赖于当前值
2)该变量没有包含在具有其他变量的不变式中
只能直接赋值
比如 i=2 可以
a=2 ;i=a 不行
maradona1984
2018-07-02
打赏
举报
回复
https://www.aliyun.com/jiaocheng/286456.html
希望对你有用
我只把 "对变量的写操作不依赖于当前值" 丢到百度的搜索框里,貌似有一大把解释,但我觉得你应该结合上下文再理解这两句话
独立理解起来会有歧义
volatile
源码分析1
前言Java中
volatile
这个热门的关键字,在面试中经常会被提及,在各种技术交流群中也经常被讨论,但似乎讨论不出一个完美的结果,带着种种
疑惑
,准备从JVM、
java
volatile
修饰引用_关于
volatile
修饰引用类型的
疑惑
volatile
修饰引用类型能否保证可见性似乎一直没有一个定论,有的书中说仅能保证引用本身的可见性,下面用两段代码来验证:流程基本为一个线程死循环读取某个引用类型的某个变量的值,另一个线程修改这个值,观察线程...
volatile
与 cache 的
疑惑
有一段DDR内存区,我用一个
volatile
变量指向起始位置。因为这段内存区会被一个FPGA以DMA的方式修改数据,请问我用
volatile
变量能否读取到FPGA修改后的内存数据,还是说我应该在读取
volatile
变量前使无效这段内存对应...
关于
volatile
的一个
疑惑
一般说来,
volatile
用在如下的几个地方: 1、中断服务程序中修改的供其它程序检测的变量需要加
volatile
;... 今日看代码的过程中,发现kernel一个实现未遵循该守则,极为
疑惑
。。。代码位置为linux内
Java中的
volatile
volatile
是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),
volatile
更轻量级,相比使用synchronized所带来的庞大开销,倘若能...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章