Interlocked.Increment
似乎是需要在多线程代码中执行的最标准/最简单的操作之一。
我假设该方法的功能是某种排序模式,任何具有线程经验的人都能够复制。
所以基本上我想知道的是,是否有人可以提供 Interlocked.Increment
方法实际上在内部执行的操作的精确副本(并解释其工作原理)? (我一直在寻找实际方法的来源,但一直找不到)
最佳答案
据Albahari先生说它做了两件事:
- 让操作系统和虚拟机知道操作的原子性,例如在 32 位系统上对 64 位值的操作将是原子的
- 生成
full fence
限制互锁变量的重新排序和缓存
看看那个链接 - 它提供了一些很好的例子。
关于c# - Interlocked.Increment 实际上在做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5700100/