【发布时间】:2011-12-30 17:37:44
【问题描述】:
现在在 Qt 中,我面临一个问题,即我有 2 个线程有 2 个不同的对象。这些对象不是 QObjects,因此它们不能使用 Signals/Slots 进行通信。第一个线程是主线程,第二个线程处于无限循环中,使用队列处理命令对象。
主线程必须等待处理线程完成请求。
如何在不使用全局互斥锁和等待条件的情况下同步两个不同的线程?
【问题讨论】:
-
我是否正确理解您有这样的情况:Thread1 接收数据并将其传递给 Thread2 进行处理并等待 Thread2 完成后再读取下一个数据块?
-
是的,确实如此,但同步是一个问题,因为信号/插槽不是一个选项
-
如果线程 1 直到线程 2 完成处理它刚刚收到的数据才移动,为什么需要多线程?您只需要一个 Receive->Process 线程
-
是的,我有新年作业:S。试图破解解决方案,而不是重新设计整个程序。
标签: c++ multithreading qt