猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
java 多线程 volatile bug?
一只斗牛犬
浏览 536
回答 3
3回答
狐的传说
volatile保证了数据的可见性,但是不保证原子性,volatile本来就不是用来处理并发情况下的,只能用在根据它修饰的变量进行判断处理,但是不能让它本身进行处理volatile的非原子性:线程工作内容中的值从主内存中直接加载,一旦加载完成,就不会再产生对应的变化。JVM保证的是从主内存中加载到线程工作内存中的值是最新的,但是无法保证原子性。 volatile解决的是变量读时的可见性问题,无法保证原子性
0
0
0
紫衣仙女
你看看字节码文件就明白啦,++i,是两条指令
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续