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

读写方法上面加了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下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号