Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在设计一个分布式系统,其中单线程服务器进程执行 CPU 密集型操作。这些操作由 ZeroMQ 网络消息触发。
如果单线程进程正在执行 CPU 密集型工作,I/O(ZeroMQ 套接字)会阻塞吗?
谢谢!
如果没有要阅读的消息,您将阻止阅读消息。
如果未完成消息的数量超过 ZMQ_HWM,您将阻止发送(默认它没有限制,但对于您拥有多少内存有实际限制),如果消息被简单地丢弃,它似乎取决于套接字类型(您在这种情况下不会阻塞)当达到该限制时。
如果您不想在任何情况下阻塞,您可以指定标志 ZMQ_NOBLOCK - zmq_send/zmq_recv 在这些情况下将失败而不是阻塞。