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

发布于 2024-11-09 00:13:13 字数 79 浏览 0 评论 0原文

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

I presume this atomic operation is faster than ++. I only see advantages favoring Interlocked.Increment. What are its disavantages?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

—━☆沉默づ 2024-11-16 00:13:13

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

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.

雪落纷纷 2024-11-16 00:13:13

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

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

这仅意味着手术期间没有明显的副作用。它没有说明手术需要多长时间。

Atomic does not mean it is faster. In fact, it will almost definitely be slower.

In concurrent programming, an
operation (or set of operations) is
atomic, linearizable, indivisible or
uninterruptible if it appears to the
rest of the system to occur
instantaneously.

This merely means there are no observable side effects during the operation. It does not say anything about how long the operation takes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文