zoukankan      html  css  js  c++  java
  • QWaitCondition 的思考2

    本文章为原创,如引用请指明出处

    th

    • 问:QWaitCondition的 wake() ,wakeall() 函数唤醒的是哪些线程呢?

    是不是在全局范围内该类的各个对象造成的悬挂线程都可以被唤醒呢?

    回答:不是。通过自己编写了一个例子证明:

    QWaitCondition唤醒的只是由某个具体的QWaitCondition的对象(例如,A)通过和若干个QMutex协作,阻塞的线程,才能通过 A.wakeOne(),或 A.wakeAll() 唤醒

    如有需要可留言,将例子上传。

    • 个人认为线程同步有两种方式

    主动方式,如互斥量,信号量。特点:阻塞的线程主动侦测是否可以运行,不需要唤醒

    被动方式,如 QWaitCondition 。特点:阻塞了线程,并且在条件允许的情况下通过 wake /wakeall 将阻塞的线程激活继续运行。

  • 相关阅读:
    txt换行追加写入
    np.unique( )的用法
    生成自己想要的任意颜色的图片
    183. 木材加工
    575. 字符串解码
    364. 接雨水 II
    255. Multi-string search
    433. 岛屿的个数
    591. 连接图 III
    918. 三数之和
  • 原文地址:https://www.cnblogs.com/keleman/p/6652311.html
Copyright © 2011-2022 走看看