Я пытаюсь дать понять, что именно «блокируется» точно означает. Я прочитал следующее: «Блокированные функции обеспечивают простой механизм синхронизации доступа к переменной, которая разделяется несколькими потоками, а также выполняет операции с переменными в атомном режиме».Какие операции называются взаимосвязанными?
Так могут ли быть названы взаимоблокируемые функции?
#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();
}
Если нет, предложите правильное имя, пожалуйста.
'Interlocked' на самом деле не означает ничего конкретного, по моему опыту (я могу ошибаться). Это скорее метка, применяемая к функциям утилиты, которые переносят атомные примитивы. Так что да, я бы сказал, что это прекрасно, чтобы обозначить эти функции «сблокированные», хотя, возможно, использование блокировки в такой функции удивительно. – Cameron