zmq:多线程可以以简单的 PUSH-PULL 模式进行 PUSH

2023-12-19

我有两个进程:producer它通过推送消息ZMQ http://www.zeromq.org/ to a consumer以简单的“拉-推”点对点模式。生产者有几个内部线程send()通过 zmq。但是,0MQ 的文档建议不要在线程之间共享套接字.

我必须使用单线程发送吗?
假设没有严格要求保持线程之间的发送顺序,那么套接字是单向单工的事实是否允许多个线程使用它而无需引入锁?


最简单的事情是在每个生产者线程上创建一个单独的 PUSH 套接字,并connect所有这些套接字都连接到消费者中的单个 PULL 套接字。

指南中明确指出 ZeroMQ 套接字必须在单线程上使用。我想说,违反这个要求并不是一个好主意,即使它看起来可行:在库的下一个版本中或在某些特定平台上或在某些特定负载场景中,事情可能会中断。所以,这实在是太冒险了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

zmq:多线程可以以简单的 PUSH-PULL 模式进行 PUSH 的相关文章

随机推荐