为了账号安全,请及时绑定邮箱和手机立即绑定

读写方法上面加了synchronized关键字,不能保证原子性

读写方法上面加了synchronized关键字,main方法里面代码用一个for循环包裹起来循环20遍,还是有为0的结果。这样的方法,实现原子性还是有问题的。

正在回答

3 回答

根据你这个代码应该是先执行了下边的读方法,你在写方法下面,sleep一段时间,应该可以解决这个问题

0 回复 有任何疑惑可以回复我~

这个可能是指令重排序,读取方法中先执行了打印result,然后再对result赋值

0 回复 有任何疑惑可以回复我~

你好,能否贴一下代码

0 回复 有任何疑惑可以回复我~
#1

慕数据8406292 提问者

public static void main(String[] args) { for(int i =0 ; i < 20 ; i++){ SynchronizedDemo synchronizedDemo =new SynchronizedDemo(); synchronizedDemo.new ReadAndWriteThread(true).start(); synchronizedDemo.new ReadAndWriteThread(false).start(); }}
2019-03-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

读写方法上面加了synchronized关键字,不能保证原子性

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信