gpt4 book ai didi

linux - Win32 InterlockedIncrement 和 InterlockedExchange 是跨进程的原子吗?

转载 作者:可可西里 更新时间:2023-11-01 09:59:01 30 4
gpt4 key购买 nike

MSDN 说互锁函数提供了一种简单的机制来同步访问由多个线程共享的变量。

如果变量在进程的共享内存中,我不确定它们是否跨多个进程的线程工作。

同样,GNU GCC 编译器内部函数又如何:__sync_add_and_fetch 和 __sync_lock_test_and_set?

最佳答案

这个问题本质上是两个不同答案的两个问题。

  1. 对于 GCC 中的 __sync_XXX 内置函数,答案是肯定的。

引用任何在线文档,如 this ,在描述的地方,这些内置通常会发出完整的屏障,甚至可以防止处理器管道内的内部推测负载。每个和所有多线程、多进程等共享内存对它们都是安全的。

  1. 我对 Windows InterLockedXXX 函数一无所知。但是MSDN知道,并说:

The threads of different processes can use this mechanism if the variable is in shared memory

所以两个答案都是"is"。

关于linux - Win32 InterlockedIncrement 和 InterlockedExchange 是跨进程的原子吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26396224/

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