我想使用 WinAPI 中的 InterlockedExchange 来使用线程的无锁同步。
目前我有这样的课。
struct DataExchange
{
volatile LONG m_value;
void SetValue(LONG newVal)
{
InterlockedExchange(&m_value, newVal);
}
LONG GetValue()
{
LONG workVal=0;
InterlockedExchange(&workVal, m_value);
return workVal;
}
};
一个线程可以设置一个新值,而另一个线程可以读取该值。
现在我想做的是将LONG
值更改为struct
. WinAPI中有什么方法可以struct
免费复制锁吗?