如果Interlocked.Increment是原子的,为什么我应该使用++代替?

时间:2011-05-23 13:40:19

标签: .net interlocked-increment

我认为这种原子操作比++快。我只看到有利于Interlocked.Increment的优势。它的缺点是什么?

2 个答案:

答案 0 :(得分:11)

Atomic意味着它是线程安全的(即,一个线程无法读取该值而另一个线程正在更改它。)由于需要使用线程同步机制,这使得它更慢,而不是更快。如果你不关心线程安全,你想使用++。 Here是关于++运算符在不同上下文中的相对性能的讨论。

答案 1 :(得分:1)

Atomic并不意味着它更快。事实上,它几乎肯定会变慢。

  

在并发编程中,   操作(或操作集)是   原子的,可线性化的,不可分割的或   如果看起来像是不间断的   系统的其余部分发生   瞬间。

这仅仅意味着在手术过程中没有可观察到的副作用。它没有说明操作需要多长时间。