gpt4 book ai didi

c# - Interlocked 是如何工作的,为什么它比 lock 更快?

转载 作者:太空狗 更新时间:2023-10-29 18:27:07 25 4
gpt4 key购买 nike

<分区>

我刚刚了解到互锁类,它应该比简单的锁定更快。现在,这一切都很好,但我对实现感到好奇。

据我所知,确保对变量的操作以原子方式完成的唯一方法是确保在任何时刻只有一个线程可以访问该变量。这是锁定。

我已经使用反射器来获取 Interlocked 的源代码,但它似乎使用外部方法来完成所有工作:

[MethodImpl(MethodImplOptions.InternalCall), ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
internal static extern int ExchangeAdd(ref int location1, int value);

我已经运行了一些测试,Interlocked 实际上比简单地锁定对象并递增它快两倍。

他们是怎么做到的?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com