ZMQ异步,它是如何准确工作的

ZMQ asynchronous, how does it work exactly?

本文关键字:何准确 工作 异步 ZMQ      更新时间:2023-10-16

我目前正在进行一个需要快速网络管理的项目。为此,我选择了0MQ,但在阅读了本文给出的文档和示例之后。关于0MQ的异步部分,有一点我很难理解。

ROUTER或DEALER套接字上是否为每个请求创建了线程?

我经常错误地将异步和多线程结合在一起。当我看到zmqsocket的人时,我发现对于DEALER或ROUTER套接字,传入路由设置为"Fair queued"。由此我得出结论,异步意味着您可以在套接字上进行写或读操作,而无需等待发送另一个请求的答案(所有内容都在排队并同步处理)。

问题来了,

0MQ是否为每个请求创建了任何线程?(我不是在谈论0MQ内部用于管理消息队列的后台线程)。

Zeromq只创建一个线程。没有为请求或套接字创建其他线程。

后台线程完成所有工作,用户线程使用队列和文件描述符与后台线程通信。

后台线程使用epoll或kqueue来实现异步魔术。

您实际上可以控制后台线程的数量,但通常只有一个。