C++ ZMQ异步,它到底是如何工作的?

C++ ZMQ异步,它到底是如何工作的?,c++,c,multithreading,asynchronous,zeromq,C++,C,Multithreading,Asynchronous,Zeromq,我目前正在从事一个需要快速网络管理的项目。为此,我选择了0MQ,但在阅读了本文给出的文档和示例之后。关于0MQ的异步部分,我几乎不了解一些东西 路由器或经销商插座上是否为每个请求创建了线程 我经常错误地将异步和多线程相结合。当我看到的人,我看到一个经销商或路由器插座,传入路由设置为“公平排队”。由此我得出结论,异步意味着您可以在套接字上写或读,而无需等待应答来发送另一个请求(所有内容都排队并同步处理) 问题是 是否有0MQ针对每个请求创建的线程?(我不是说后台线程0MQ在内部用于管理消息队列)

我目前正在从事一个需要快速网络管理的项目。为此,我选择了0MQ,但在阅读了本文给出的文档和示例之后。关于0MQ的异步部分,我几乎不了解一些东西

路由器或经销商插座上是否为每个请求创建了线程

我经常错误地将异步和多线程相结合。当我看到的人,我看到一个经销商或路由器插座,传入路由设置为“公平排队”。由此我得出结论,异步意味着您可以在套接字上写或读,而无需等待应答来发送另一个请求(所有内容都排队并同步处理)

问题是


是否有0MQ针对每个请求创建的线程?(我不是说后台线程0MQ在内部用于管理消息队列)

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

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

后台线程正在使用epoll或kqueue来执行异步魔术

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