gpt4 book ai didi

c++ - 与使用 Qt 处理 ZeroMQ 的永久线程通信

转载 作者:行者123 更新时间:2023-11-28 04:38:25 26 4
gpt4 key购买 nike

我有一个继承自 QThread 的类,它在 while 循环中处理 ZeroMQ SUB 订阅套接字(在线程运行时轮询方法)并在从套接字接收消息时通过发出信号通知 GUI 线程。

在这个 QThread 派生类中,在轮询循环之前,我还创建了一个 ZeroMQ PUB 发布套接字,并且有使用它的方法.这些方法仅在主线程(GUI)中用于向服务器发送数据。

此解决方案没有任何问题,但并不完美。我只希望一个线程来处理订阅和发布套接字操作。 GUI 线程 ( main ) 将发送信号以请求发布数据,而不是调用 QThread 派生类方法。

是否有基于 Qt 工具的良好模式来实现它?

最佳答案

Is there a nice pattern, based on Qt tools, to implement that ?

嗯,

ZeroMQ部分同时处理PUBSUB没有问题

独立于主要动机,ZeroMQ 引擎不是这里的问题。如果深入了解线路和细节,ZeroMQ Context() 实例实际上是线程池,它为性能调整和各自的优先级、映射套接字实例提供了很多机会到直接映射的 ZeroMQ I/O 线程组上。

如果不是每天使用 ZeroMQ,您可能会花 5 秒钟阅读主要的概念差异,如 [ ZeroMQ hierarchy in less than a five seconds 中简要概述的那样。 ] 部分。

这就是说,主要关注的是如何要求 Qt 生态系统通过 ZeroMQ 基础设施“说话”。如果将纯非阻塞、设计良好的代码放入管道中,那么让 ZeroMQ 在平台上发送和收集信号就不会有重大障碍。

消息传递的效率、(超)低延迟和零复制机制非常方便,触手可及。这意味着,坏主意或讨厌的代码将继续是坏的或讨厌的,ZeroMQ 框架不能被指责为“制造麻烦”:o)

关于c++ - 与使用 Qt 处理 ZeroMQ 的永久线程通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50792973/

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