【发布时间】:2011-08-17 07:40:50
【问题描述】:
我正在尝试使用互锁操作使以下代码片段无锁,知道如何翻译吗?
if (m_Ref == 0xFFFF)
m_Ref = 1;
else
{
if (++m_Ref == 1)
CallSomething(); //
}
我在想类似的事情
if (InterlockedCompareExchange(&m_Ref, 1, 0xFFFF) != 0xFFFF))
{
if (InterlockedIncrement(&m_Ref) == 1)
CallSomething();
}
这有什么问题/种族吗?
【问题讨论】:
标签: c++ multithreading synchronization interlocked