【发布时间】:2014-03-15 16:07:30
【问题描述】:
我是并发编程的新手,我想到了一个特定的情况,我想提供一些意见。如果我有一个变量,我将从多个线程访问但只是为了读取值(它不是常量的唯一原因是因为我需要在运行时设置它),我是否需要一个互斥锁?或者您是否只需要担心还有写入共享资源时的竞争条件?
【问题讨论】:
-
我想说你应该总是担心比赛条件,但这不是很有帮助。相反,我想知道:您是在启动线程之前还是之后“在运行时设置”?
-
Eric Lippert 的相关、及时的博文:Can I skip the lock when reading an integer? 当然有细微差别,但 TLDR:使用锁;未来的维护者会感谢你没有比赛中的神秘错误,而不是无限小的时间节省。
标签: multithreading concurrency