Qt系列文章之三十一 (基于QThread互斥量的线程同步线程)
Posted Fu_Lin_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt系列文章之三十一 (基于QThread互斥量的线程同步线程)相关的知识,希望对你有一定的参考价值。
前言
前面讲解了相关QThread的使用和同步概念,本节将着重讲解QThread同步的具体使用,下面将从 QMutex和QMutexLocker 展开讲解!
QMutex详解
QMutex 和 QMutexLocker 是基于互斥量的线程同步类,QMutex 定义的实例是一个互斥量,QMutex主要提供3个函数。
- lock(): 锁定互斥量,如果另外一个线程锁定了这个互斥量,它将阻塞执行直到其他线程
解锁这个互斥量。 - unlock(): 解锁-一个互斥量,需要与lock()配对使用。
- tryLock(): 试图锁定一个互斥量, 如果成功锁定就返回true;如果其他线程已经锁定了这
个互斥量,就返回false, 但不阻塞程序执行。
实例讲解
使用互斥量,对 DiceThread 类重新定义,不采用信号与槽机制,而是提供一个函数用于主线程读取数据。更改后的 DiceThread 类定义如下:
以上是关于Qt系列文章之三十一 (基于QThread互斥量的线程同步线程)的主要内容,如果未能解决你的问题,请参考以下文章
Qt系列文章之三十二 (基于QThread的QReadWriteLock和QWaitCondition 的线程同步)
Qt系列文章之三十二 (基于QThread的QReadWriteLock和QWaitCondition 的线程同步)
Qt系列文章之三十三 (基于QThread的信号量的线程同步)