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

关于 多线程访问同一实例

关于 多线程访问同一实例

吃鸡游戏 2018-06-26 10:18:43
两个线程。一个线程对于这个实例写操作(改变这个实例的某些属性值)一个线程对于这个实例读操作(读这个实例的某个属性值) 问题一:那么,如果我就这样,不进行lock的话,会不会出现两个线程同时写/读而出现冲突?(即使几率很低) 问题二:那么如果我lock的话,lock第一个线程的写方法,lock第二个线程的读方法,结果是:当正在执行第一个线程的写方法时, 第二个线程的读方法由于无法读取这个实例而被阻塞,直到这个实例被第一个线程写完。不知道我这样理解的对吗?因为我看网上几乎所有例子都是多个现成共同执行同一段代码,所以只lock一个方法。
查看完整描述

2 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

就算你LOCK不代表读线程就能读到最新数据,CPU是有缓存的。当然并发频率不高是没问题的

查看完整回答
反对 回复 2018-07-17
?
萧十郎

TA贡献1815条经验 获得超13个赞

内存是满足可读可写的,同时读写本身是不存在问题的。

这个冲突取决于你所认为 —— 

比如写了一半,但读可判断,可抛弃或其他;


查看完整回答
反对 回复 2018-07-17
  • 2 回答
  • 0 关注
  • 277 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信