我正在设计一个分布式系统,其中单线程服务器进程执行CPU密集型操作。这些操作由ZeroMQ网络消息触发。
如果单线程进程正在执行CPU密集型工作,I/O (ZeroMQ套接字)会阻塞吗?
谢谢!
发布于 2010-09-13 04:26:14
如果没有消息可读,您将阻止阅读消息。
如果未处理消息的数量超过ZMQ_HWM,您将阻止发送(默认情况下它没有限制,但对于您拥有的内存有实际限制),这似乎取决于套接字类型,如果消息在达到该限制时被简单地丢弃(在这种情况下您不会阻止)。
如果你不想在任何情况下阻塞,你可以指定标志ZMQ_NOBLOCK --在这些情况下,zmq/zmq将会失败而不是阻塞。
https://stackoverflow.com/questions/3696202
复制相似问题