如果 Interlocked.Increment 是原子的,为什么我应该使用 ++反而?
我认为这个原子操作比 ++
更快。我只看到有利于 Interlocked.Increment 的优势。它的缺点是什么?
I presume this atomic operation is faster than ++
. I only see advantages favoring Interlocked.Increment
. What are its disavantages?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
原子意味着它是线程安全的(即,一个线程不可能在另一个线程更改该值时读取该值。)由于需要使用线程同步机制,这使得它更慢,而不是更快。如果你不关心线程安全,你想使用 ++。 这里是关于 ++ 运算符在不同上下文中的相对性能的一些讨论。
Atomic means it is thread-safe (i.e. it is impossible for one thread to read the value while another is changing it.) Which makes it slower, not faster, due to the need to use thread synchronization mechanisms. You want to use ++ if you don't care about thread-safety. Here is some discussion on the relative performance of the ++ operator in different contexts.
原子并不意味着它更快。事实上,它几乎肯定会更慢。
这仅意味着手术期间没有明显的副作用。它没有说明手术需要多长时间。
Atomic does not mean it is faster. In fact, it will almost definitely be slower.
This merely means there are no observable side effects during the operation. It does not say anything about how long the operation takes.