Qt系列文章之三十一 (基于QThread互斥量的线程同步线程)

Posted Fu_Lin_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt系列文章之三十一 (基于QThread互斥量的线程同步线程)相关的知识,希望对你有一定的参考价值。

前言

  前面讲解了相关QThread的使用和同步概念,本节将着重讲解QThread同步的具体使用,下面将从 QMutex和QMutexLocker 展开讲解!

QMutex详解

  QMutexQMutexLocker 是基于互斥量的线程同步类,QMutex 定义的实例是一个互斥量,QMutex主要提供3个函数。

  • lock(): 锁定互斥量,如果另外一个线程锁定了这个互斥量,它将阻塞执行直到其他线程
    解锁这个互斥量。
  • unlock(): 解锁-一个互斥量,需要与lock()配对使用。
  • tryLock(): 试图锁定一个互斥量, 如果成功锁定就返回true;如果其他线程已经锁定了这
    个互斥量,就返回false, 但不阻塞程序执行。

实例讲解

  使用互斥量,对 DiceThread 类重新定义,不采用信号与槽机制,而是提供一个函数用于主线程读取数据。更改后的 DiceThread 类定义如下:


                

以上是关于Qt系列文章之三十一 (基于QThread互斥量的线程同步线程)的主要内容,如果未能解决你的问题,请参考以下文章

Qt系列文章之三十二 (基于QThread的QReadWriteLock和QWaitCondition 的线程同步)

Qt系列文章之三十二 (基于QThread的QReadWriteLock和QWaitCondition 的线程同步)

Qt系列文章之三十三 (基于QThread的信号量的线程同步)

Qt系列文章之三十三 (基于QThread的信号量的线程同步)

Qt系列文章之三十(基于QThread的线程同步概述)

Qt系列文章之三十(基于QThread的线程同步概述)