首页| 论坛| 消息

回复: Qt线程池处理消息队列
#6 回 九重水 的帖子 [lwei24 02-26 16:57]
九重水:楼上2位已经大致说清楚了,我再打个比方。
假设有一个包工头(监测线程),他手底下有10个打工人(工作线程),假设名字分别为李世民1号,李世民2号……李世民10号。
当包工头接到一个活,说需要建国打天下,于是包工头叫李世民1号带兵出去打仗建国;
当包工头又接到一个活,说要 .. (2021-02-26 10:10) 
嗯额,多谢你的例子。方便问一下,如何更好的等待某个工作线程完成后,再执行下一个工作线程。比如,李世民1工作线程完成任务后,才能执行李世民2。有什么办法,让主线程不卡,但它们的第一工作线程按照顺序执行完再执行下一个工作线程呢?
#7 [donglaile 02-27 19:03]
每个线程执行完毕后通知主线程,主线程再启动下一个线程
#8 [fsu0413 02-27 20:07]
我感觉这个就是多线程设计问题。。。
拿三楼的例子来说,就是包工头是主线程,所有的李世民在QThreadPool中,李世民是QRunnable。
默认情况下,李世民办完事就跑了,如果想让包工头知道李世民办完事,就需要李世民给包工头一个通知,可以让包工头提供一个signal给李世民,包工头自己接收signal,李世民办完事调用一下signal再跑,就可以知道李世民办完事了。
其实默认情况下QRunnable是用一个新建一个的。。。
#9 回 donglaile 的帖子 [lwei24 03-01 10:25]
donglaile:每个线程执行完毕后通知主线程,主线程再启动下一个线程 (2021-02-27 19:03) 
多谢您的意见,我也是这么考虑的。
#10 回 fsu0413 的帖子 [lwei24 03-01 10:26]
fsu0413:我感觉这个就是多线程设计问题。。。
拿三楼的例子来说,就是包工头是主线程,所有的李世民在QThreadPool中,李世民是QRunnable。
默认情况下,李世民办完事就跑了,如果想让包工头知道李世民办完事,就需要李世民给包工头一个通知,可以让包工头提供一个signal给李世民,包工头自 .. (2021-02-27 20:07) 
多谢您的意见,这个正如你所想的,是多线程设计的问题。我也想设计一个比较符合实际问题的健全的线程机制,处理消息队列里的任务。

<< 1 2 >> (2/2)

回复 发表
主题 版块