jjzjj

InterlockedExchange

全部标签

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

MSDN说互锁函数提供了一种简单的机制来同步访问由多个线程共享的变量。如果变量在进程的共享内存中,我不确定它们是否跨多个进程的线程工作。同样,GNUGCC编译器内部函数又如何:__sync_add_and_fetch和__sync_lock_test_and_set? 最佳答案 这个问题本质上是两个不同答案的两个问题。对于GCC中的__sync_XXX内置函数,答案是肯定的。引用任何在线文档,如this,在描述的地方,这些内置通常会发出完整的屏障,甚至可以防止处理器管道内的内部推测负载。每个和所有多线程、多进程等共享内存对它们都是安

c++ - 为什么没有 InterlockedExchange Subtract 64?

在WindowsAPI上,有InterlockedExchangeAddInterlockedExchangeAdd64InterlockedExchangeSubtract为什么没有InterlockedExchangeSubtract64?我想对64位值(LONGLONG)执行原子操作,而不必使用互斥锁。 最佳答案 简单地否定您传递给InterlockedExchangeAdd64的操作数。换句话说,利用x-y等于x+(-y)这一事实。 关于c++-为什么没有InterlockedE

c++ - InterlockedExchange 和内存可见性

我已阅读文章SynchronizationandMultiprocessorIssues我对InterlockedCompareExchange和InterlockedExchange有疑问。问题实际上是关于文章中的最后一个例子。它们有两个变量iValue和fValueHasBeenComputed并且在CacheComputedValue()中它们使用InterlockedExchange修改它们中的每一个:InterlockedExchange((LONG*)&iValue,(LONG)ComputeValue());//don'tunderstandInterlockedExch