QWaitCondition 的思考2

2018-06-17 22:55:59来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

 

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

th

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

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

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

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

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

 

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

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

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

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:合并果子

下一篇:对称二叉树