我试图让我自己弄清楚“互锁”的确切含义。我读到以下内容:“互锁的函数提供了一种简单的机制,用于同步访问多个线程共享的变量。它们还以原子方式对变量执行操作。”

那么以下功能可以称为互锁吗?

#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。如果您执行五次互锁加法,则变量将增加五次。没有更多,也没有更少。

09-10 04:44