80 QMutex和QMutexLocker

80.1 QMutex

互斥体意在确保程序中的一段代码任何时候最多被一个线程执行。

80.2 QMutexLocker

QMutexLocker类的构造函数接受一个QMutex类型的互斥体对象参数并将其锁定,在析构函数中将其解锁。因此QMutexLocker对象的生命周期决定了被互斥体保护的代码范围。

80.3 案例

80.3.1 创建项目

通过QtCreator,在C:\Users\Minwei\Projects\Qt路径下,创建名为Mutex的控制台(Console)项目。

80.3.2 实现功能

C:\Users\Minwei\Projects\Qt\Mutex\main.cpp:

80.3.3 测试验证

80.3.3.1 调用lock方法锁定互斥体

运行效果如图所示:

80.3.3.2 调用try_lock方法锁定互斥体

运行效果如图所示:

80.3.3.3 调用tryLock方法锁定互斥体

运行效果如图所示:

80.3.3.4 利用QMutexLocker对象的生命周期管理锁定范围

运行效果如图所示: