【发布时间】:2023-03-03 16:07:01
【问题描述】:
正如文档所说,ZMQ 套接字 are not thread-safe。所以我假设标题的答案是“否”。
不过,我还是不知道如何使用 ZMQ 实现非阻塞 request-reply 模式:
具体来说,客户端有一个主线程,它继续处理来自(线程安全)消息队列的消息。消息来自各种来源,例如网络、定时器、I/O 等。 有时主线程希望向远程服务器发送请求,但它不想等待响应(可能需要一段时间才能到达)。
通常,我会使用两个线程:
- 主消息处理循环线程。这将在 REQ/REP 套接字上
send()请求 - 将等待来自服务器的响应的辅助侦听器线程。这将在套接字上使用阻塞
recv(),并将响应推送到主线程的队列。
我将如何使用 ZeroMQ 实现这一目标?辅助线程是否应该打开一个inproc套接字并监听来自主线程的消息?
【问题讨论】:
标签: multithreading zeromq