【发布时间】:2015-07-16 16:43:32
【问题描述】:
我正在开发一个应用程序,我想使用 ZeroMQ 连接不同类型的节点,这些节点可以在系统运行时添加和删除。这意味着我想在节点来来去去时随时调用zmq_connect() 或zmq_disconnect()。
一些连接使用ZMQ_REQ 类型的套接字,当没有可用的对等点时阻塞。因此,可能会发生一个节点在 zmq_recv() 中被阻塞,而没有任何节点可用于处理请求。如果那时有一个新节点可用,我想使用 zmq_connect() 连接套接字。我能看到如何做到这一点的唯一方法是从不同的线程调用 zmq_connect() 。但是文档非常清楚地指出,zmq_socket 实例不能同时从多个线程中使用。
我该如何解决这个问题,在ZMQ_REQ 套接字上发送没有任何连接(或无法建立的连接)的消息,然后添加连接并处理等待的请求?
【问题讨论】:
标签: multithreading zeromq