gpt4 book ai didi

c++ - 具有 Qt 信号/槽的生产者/消费者

转载 作者:太空狗 更新时间:2023-10-29 21:25:10 25 4
gpt4 key购买 nike

我正在编写一个程序,其中多个生产者生成一些应由多个消费者处理的数据。由于每条数据的消耗大约需要 100 毫秒,并且目标平台有很多处理器,所以在我看来,每个生产者和每个消费者都有自己的线程是很自然的。我的问题是:Qt 信号/槽是将数据 block 从生产者传递给消费者的好方法吗?或者您是否建议更好的解决方案(强烈推荐 Qt)。

为了以防万一,生产者每小时大约产生数十万个突发数据。

最佳答案

我认为信号/槽机制在这里不合适,因为每个信号都分配给所有连接的槽。这意味着如果您使用信号/槽机制作为您的“工作队列”,您不会在消费者上获得任何负载分配,而是所有消费者都可以执行相同(重复)的工作。

更好的机制是使用容器作为工作队列(生产者将项目添加到容器,消费者移除它们),使用 QMutex 来避免并发问题和一个(或两个,如果你想要施加最大大小)QWaitCondition 以在消费者没有工作时阻止消费者。

关于c++ - 具有 Qt 信号/槽的生产者/消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14415730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com