13 多线程
2023-04-28 06:45:00 阅读次数:285
qt,多线程
QThread创建多线程程序
互斥量同步
QReadWriteLock的线程同步
QWaitCondition的线程同步
#include <QMutex>
#include <QThread>
QMutex mutex;
QWaitCondition newdataAvailable;
//生产者
mutex.lock();
diceValue=qrand(); //获取随机数
mutex.unlock();
newdataAvailable.wakeAll();//唤醒所有线程,有新数据了
msleep(500); //线程休眠100ms
//消费者
mutex.lock();
newdataAvailable.wait(&mutex);//会先解锁mutex,使其他线程可以使用mutex
mutex.unlock();
基于信号量的线程同步
#include <QSemaphore>
QSemaphore emptyBufs(2);//信号量:空的缓冲区个数,初始资源个数为2
int n=emptyBufs.available();
emptyBufs.release(2-n);
emptyBufs.acquire();//获取一个空的缓冲区
版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/u_15943685/6026776,作者:步_步_为营,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。
上一篇:Lc27_移除元素
下一篇:Python----魔法函数__call__的用法