如果 Interlocked.Increment 是原子的,为什么我应该使用 ++ 来代替?
-
09-09-2020 - |
题
我认为这个原子操作比 ++
. 。我只看到优势 Interlocked.Increment
. 。它的缺点是什么?
解决方案
原子意味着它是线程安全的(即一个线程不可能在另一个线程更改该值时读取该值。)由于需要使用线程同步机制,这使得速度更慢,而不是更快。如果你不关心线程安全,你想使用 ++。 这里 是关于 ++ 运算符在不同上下文中的相对性能的一些讨论。
其他提示
原子并不意味着它更快。事实上,它几乎肯定会更慢。
在同时编程中,如果系统在系统中似乎可以立即发生,则操作(或一组操作)是原子化,可线化,不可分割或不间断的。
这仅意味着手术期间没有明显的副作用。它没有说明手术需要多长时间。
不隶属于 StackOverflow