13 多线程
  TEZNKK3IfmPf 2023年11月14日 16 0

13 多线程

13 多线程

互斥量同步

13 多线程

13 多线程

QReadWriteLock的线程同步

13 多线程

13 多线程

13 多线程

QWaitCondition的线程同步

13 多线程

#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();

基于信号量的线程同步

13 多线程

13 多线程

#include    <QSemaphore>
QSemaphore emptyBufs(2);//信号量:空的缓冲区个数,初始资源个数为2
int n=emptyBufs.available();
emptyBufs.release(2-n);
emptyBufs.acquire();//获取一个空的缓冲区
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月15日   13   0   0 qt
TEZNKK3IfmPf