当前位置: 首页 > 编程语言 > C#

Interlocked.Increment实际上在做什么?分享

时间:2023-04-11 02:56:16 C#

Interlocked.Increment到底在做什么?Interlocked.Increment似乎是多线程代码中最标准/最简单的事情之一。我假设该方法的功能是一种排序模式,任何具有线程经验的人都能够重现。所以基本上我想知道的是,是否有人可以提供Interlocked.Increment方法实际在内部执行的操作的完整副本(解释它是如何工作的)?(我已经寻找实际方法的来源,但找不到)根据AlBahari先生的说法,它做了两件事:查看该链接-它提供了一些很好的示例。我假设它是一个实现细节,但查看它的一种方法是检查JIT编译代码。考虑以下示例。私有静态int值=42;publicstaticvoidFoo(){Interlocked.Increment(refValue);在x86上它生成以下lockincdwordlock修饰符锁定总线以防止多个CPU更新同一数据位置。在x64上,它生成lockxadddwordptr,eax我希望它是InterlockedIncrement64Win32API调用的包装器。编辑:我看到这是一个非常简短的回应。构建一点:很容易复制一个函数的功能,但不是性能。大多数CPU中都有本机指令为您提供primefaces“互锁交换和添加”指令,因此您希望使用该指令来实现您的功能,我希望从C#执行此操作的最简单方法是执行win32API调用。有关该主题的更多背景信息,请查看此白皮书。以上就是C#学习教程:Interlocked.Increment到底是干什么的?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: