如果经常发生冲突,我应该使用自旋锁或互斥锁

时间:2016-07-28 08:29:35

标签: .net mutex spinlock

我修复了一个与一个库中对集合的并发访问相关的错误。目前,库使用Mutex(锁定)来控制来自多个线程的访问。代码中的锁定区域包含应该执行得非常快的代码(修改列表/字典或从中读取),因此自旋锁似乎与此方案匹配。

但...... 在大多数情况下,锁定不是必需的,因为使用此库的大多数应用程序都是单线程的,对我来说不要放慢速度。 我的天真基准测试表明自旋锁检查较慢,没有使用该资源,但我并不完全信任它。

1 个答案:

答案 0 :(得分:0)

如果您将此功能宣传为线程安全,那么您应该锁定集合更新。

如果没有,请确保记录事实并将其留给消费者。