gpt4 book ai didi

c++ - 关键部分内的 InterlockedExchange(或类似的原子操作)?

转载 作者:行者123 更新时间:2023-11-30 04:29:30 25 4
gpt4 key购买 nike

我看到一些重复的代码(准确地说是方法),它们进入临界区然后使用 InterlockedExchange...这有意义吗,因为我认为这个操作实际上是原子的,不需要这样的同步?

{ 
EnterCricSectionLock lock (somelock);
InterlockedExchange(&somelong, static_cast<long>(newlongVal));
}

基本上就是这样......

最佳答案

正常的交换通常不是原子的。但是,如果所有其他用途都受同一互斥锁保护,则在拥有互斥锁的同时执行此操作是可以的。如果所有其他用途都是原子的,也可以使用原子交换。我能想到的在拥有互斥量的同时进行原子交换的唯一合乎逻辑的原因是,并非所有对该值的使用都受互斥量保护。

关于c++ - 关键部分内的 InterlockedExchange(或类似的原子操作)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9308845/

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