大家好,又见面了,我是你们的朋友全栈君。
1、官方文档:
QMutex类提供线程间的访问序列化。
QMutex的目的是保护一个对象、数据结构或代码片段,
这样每次只有一个线程可以访问它(这类似于Java synchronized关键字)。
通常最好将互斥对象与QMutexLocker一起使用,因为这样可以很容易地确保一致地执行锁定和解锁。
2、官方示例:
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
的代码。
3、配合QMutexLocker使用
单独使用QMutex
时,每次都需要加锁、解锁,显得不太方便,QMutex
配合QMutexLocker
使用是比较推荐的方法:
头文件:
#include <QMutex>
...
private:
QMutex _mutex;
...
同一个例子:使用QMutexLocker极大地简化了代码,并使其更具可读性:
QMutex m
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/126621.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...