ZMQ异步,它是如何准确工作的
ZMQ asynchronous, how does it work exactly?
我目前正在进行一个需要快速网络管理的项目。为此,我选择了0MQ,但在阅读了本文给出的文档和示例之后。关于0MQ的异步部分,有一点我很难理解。
ROUTER或DEALER套接字上是否为每个请求创建了线程?
我经常错误地将异步和多线程结合在一起。当我看到zmqsocket的人时,我发现对于DEALER或ROUTER套接字,传入路由设置为"Fair queued"。由此我得出结论,异步意味着您可以在套接字上进行写或读操作,而无需等待发送另一个请求的答案(所有内容都在排队并同步处理)。
问题来了,
0MQ是否为每个请求创建了任何线程?(我不是在谈论0MQ内部用于管理消息队列的后台线程)。
后台线程完成所有工作,用户线程使用队列和文件描述符与后台线程通信。
后台线程使用epoll或kqueue来实现异步魔术。
您实际上可以控制后台线程的数量,但通常只有一个。
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- Python中的for循环与C++有何不同
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- <<操作员在下面的行中工作
- 有人能解释一下为什么下界是这样工作的吗C++的
- 导入库如何准确地工作
- 当 int 方法工作正常时,void 方法有何不同,或者为什么我不能调用 void 方法?
- ZMQ异步,它是如何准确工作的