临界资源加锁的问题

pingzilao 2012-03-28 09:34:41
有多个线程操作临界资源i,若所有线程只去读取i,则不需要加锁;若有2个以上的线程写i(例如 i++ ,i--, i=5等),则对i操作需要加锁;若只有一个线程写i,其它的线程读i,那需不需要加锁啊???
...全文
320 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ncist_jianeng 2012-03-29
  • 打赏
  • 举报
回复
不加锁应该会出现问题的吧。。比如一个读进程读取了一个数,然后写进程将这个数改了,读进程再读的时候就和之前的值不一样了。。。。
NeedHelper 2012-03-28
  • 打赏
  • 举报
回复
要加读锁。
昵称很不好取 2012-03-28
  • 打赏
  • 举报
回复
需要加锁,尤其是在多核环境里,如果读线程比较多而写线程比较少,可以试试读写锁,比一般锁性能要好
yyfhz 2012-03-28
  • 打赏
  • 举报
回复
为了防止脏读,只要有写进程,就需要加锁。
同样的,当有进程在读的时候,新的写进程也需要等待。
具体的可参考数据库中的共享锁和独占锁。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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