新手问题:多线程读取全局变量,不修改,不会发生冲突吧?

还没淹死的鱼 2009-09-25 09:21:03
rt, 修改的时候非常少
...全文
339 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
还没淹死的鱼 2009-09-27
  • 打赏
  • 举报
回复
谢谢这么多高手的回帖
an_bachelor 2009-09-27
  • 打赏
  • 举报
回复
非常少和非常多没有区别
野男孩 2009-09-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qiandayong 的回复:]
最多的时候十几个线程读(1秒内), 修改的时候程序要停止或重启的, 所以不用考虑

目前没加任何限制, 不清楚以后会不会有问题...
[/Quote]

那就是说程序运行起来之后就不会修改咯?!这样的话,就是所有的线程都是读操作,所以不必保护,没有问题的。
ahniyilin 2009-09-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bigcarrot 的回复:]
只要有修改,不管多少,都需要保护起来
只读的话,最好加上volatile
[/Quote]
同意7楼的观点
Johnny_Lx 2009-09-26
  • 打赏
  • 举报
回复
需要做好数据保护
BigCarrot 2009-09-26
  • 打赏
  • 举报
回复
只要有修改,不管多少,都需要保护起来
只读的话,最好加上volatile
wutaihua 2009-09-25
  • 打赏
  • 举报
回复
不修改没关系,如果修改的话,会涉及资源竞争(race conditions),可以通过锁定来完成,或者按照1楼的做法,用Interlock之类的来单步程序完成。防止页面切换(context switches);
还没淹死的鱼 2009-09-25
  • 打赏
  • 举报
回复
最多的时候十几个线程读(1秒内), 修改的时候程序要停止或重启的, 所以不用考虑

目前没加任何限制, 不清楚以后会不会有问题...
fandh 2009-09-25
  • 打赏
  • 举报
回复
只要有线程读,有其它线程写!那么就要做限制!
rendao0563 2009-09-25
  • 打赏
  • 举报
回复
你需要说明你有几个线程读, 几个线程修改. .
oldn123 2009-09-25
  • 打赏
  • 举报
回复
修改方便点可以用Interlock..系列的函数来完成.如InterlockedExchange(&l, 5);
只是读就没关系了.
wdq0916 2009-09-25
  • 打赏
  • 举报
回复
为了安全,建议LZ还是做下保护吧,要不等出了问题就不好查了。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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