我试图让我自己弄清楚“互锁”的确切含义。我读到以下内容:“互锁的函数提供了一种简单的机制,用于同步访问多个线程共享的变量。它们还以原子方式对变量执行操作。”
那么以下功能可以称为互锁吗?
#include <QtCore>
#include <QAtomicPointer>
QAtomicInt i;
void interlockedMultiply(int factor)
{
int oldValue;
do
{
oldValue = i;
} while (!i.testAndSetOrdered(oldValue, oldValue * factor));
}
long long x;
QReadWriteLock lock;
void interlockedAdd(long long y)
{
lock.lockForWrite();
x += y;
lock.unlock();
}
如果没有,请提出一个合适的名字。
最佳答案
互锁意味着并发操作将产生预期的结果。 IE。如果您执行五次互锁加法,则变量将增加五次。没有更多,也没有更少。