Multithreading 多线程:多个生产者+;一个消费者
我有以下问题Multithreading 多线程:多个生产者+;一个消费者,multithreading,qt,synchronization,Multithreading,Qt,Synchronization,我有以下问题 我有几个线程(生产者)计算移动对象的位置,还有一个线程(消费者)打印计算结果。每个线程都有自己的时间刻度。同步的问题是,只有当所有生产者在打印时计算位置时,消费者才能打印结果。换句话说,消费者必须将其当前时间与生产商的相同时间进行比较,并决定是否可以打印结果。我发现了一个类似的例子,其中使用信号量进行同步,但只有一个生产者。有人知道智能解决方案吗?消费者循环: 等待n次 收集数据 做自己的事 向所有n生产者发送信号 生产者循环(n并行): 做自己的事 提供数据 给消费者的信号
我有几个线程(生产者)计算移动对象的位置,还有一个线程(消费者)打印计算结果。每个线程都有自己的时间刻度。同步的问题是,只有当所有生产者在打印时计算位置时,消费者才能打印结果。换句话说,消费者必须将其当前时间与生产商的相同时间进行比较,并决定是否可以打印结果。我发现了一个类似的例子,其中使用信号量进行同步,但只有一个生产者。有人知道智能解决方案吗?消费者循环:
- 等待
次n
- 收集数据
- 做自己的事
- 向所有
生产者发送信号n
n
并行):
- 做自己的事
- 提供数据
- 给消费者的信号
- 等等
- 等待,然后检查所有缓冲区;在任何缓冲区为空时重复此操作
- 收集数据;如果任何缓冲区已满,则向该生产者发送信号
- 做自己的事
n
并行):
- 做自己的事
- 如果缓冲区已满,请等待
- 队列数据
- 给消费者的信号
n次。如果您可以缓冲结果,那么您可以通过另一种方式提高效率。