大家好,又见面了,我是你们的朋友全栈君。
QMutex类提供线程间的访问序列化。
QMutex的目的是保护一个对象、数据结构或代码片段,
这样每次只有一个线程可以访问它(这类似于Java synchronized关键字)。
通常最好将互斥对象与QMutexLocker一起使用,因为这样可以很容易地确保一致地执行锁定和解锁。
QMutex mutex;
int number = 6;
void method1()
{
mutex.lock();
number *= 5;
number /= 4;
mutex.unlock();
}
void method2()
{
mutex.lock();
number *= 3;
number /= 2;
mutex.unlock();
}
即使用户同时调用两个函数,在同一时刻,也只会执行一个函数内操作number
的代码。
单独使用QMutex
时,每次都需要加锁、解锁,显得不太方便,QMutex
配合QMutexLocker
使用是比较推荐的方法:
头文件:
#include <QMutex>
...
private:
QMutex _mutex;
...
同一个例子:使用QMutexLocker极大地简化了代码,并使其更具可读性:
QMutex m
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126621.html原文链接:https://javaforall.cn