课程
/后端开发
/Java
/细说Java多线程之内存可见性
读写方法上面加了synchronized关键字,main方法里面代码用一个for循环包裹起来循环20遍,还是有为0的结果。这样的方法,实现原子性还是有问题的。
2019-03-01
源自:细说Java多线程之内存可见性 3-4
正在回答
根据你这个代码应该是先执行了下边的读方法,你在写方法下面,sleep一段时间,应该可以解决这个问题
这个可能是指令重排序,读取方法中先执行了打印result,然后再对result赋值
你好,能否贴一下代码
慕数据8406292 提问者
举报
用两种方式实现内存可见性,代领大家深层次学习Java中的内存
1 回答volatile不能保证原子性,解决方法
1 回答在write和方法上加synchronized不能保证结果一定是6
3 回答synchronized 原子性是如何保证线程的交叉执行?
2 回答volatile原子性
9 回答不是说volatile不保证原子性吗?为什么对于64位类型的变量用volatile修饰?