QT——QMutex(互斥量)
Posted studysoftware
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT——QMutex(互斥量)相关的知识,希望对你有一定的参考价值。
互斥:mutex只允许某个时刻只允许一个线程对共享资源进行访问
#include<QMutex>
- QMutex ( RecursionMode mode = NonRecursive )
- ~QMutex ()
- void lock () //锁定互斥量,若有一个线程已经锁定了这个互斥量,这次的调用将阻塞直到那个线程把它解锁才行
- bool tryLock () //试图加锁,若有线程在使用则返回false,不会被阻塞
- bool tryLock ( int timeout ) //在timeout时间内试图加锁
- void unlock () //解锁
互斥模式:
enum QMutex::RecursionMode
Constant | Value | Description |
---|---|---|
QMutex::Recursive | 1 | 一个线程可对同一个互斥量加锁多次,并且只有对应的解锁才能释放一个互斥量 |
QMutex::NonRecursive | 0 | 一个线程只能锁住一个互斥量 |
QMutex *mutex=new QMutex(QMutex::Recursive); //默认是NonRecursive
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(); }
相关博客转http://blog.sina.com.cn/s/articlelist_2128715093_2_1.html
以上是关于QT——QMutex(互斥量)的主要内容,如果未能解决你的问题,请参考以下文章
Qt系列文章之三十一 (基于QThread互斥量的线程同步线程)
Qt系列文章之三十一 (基于QThread互斥量的线程同步线程)