问个关于锁(synchronized)的问题

qps2006 2008-04-09 12:06:13
正在线程编程,是否只要把写操作放入synchronized块中,读操作不必放入?
...全文
79 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Barryzhong 2008-04-09
  • 打赏
  • 举报
回复
不十分正确!


假如读操作获得的结果需要跟写操作相关时,那么读操作就需要加锁!此时其他写操作需要等读操作释放所以后才能更新。
云上飞翔 2008-04-09
  • 打赏
  • 举报
回复
答:
1)若线程A("写操作"线程)与线程B(“读操作”线程)可能会并发运行的话,则都必须放在synchronized代码块中。这是:“写-读”冲突。
2)若只有线程A("读操作"线程)与线程B(“读操作”线程)可能会并发运行的话,则不必须放在synchronized代码块中。这是:“读-读”不冲突(前提:读操作不能修改任何临界区资源
3)最后一个是“写-写”冲突。必须要放在synchronized代码块中。
以上答案仅供你参考。
psyl 2008-04-09
  • 打赏
  • 举报
回复
没有必要把读操作放到同步块中。

因为读操作可以同时进行,不冲突。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧