car*_*mst 3 io networking distributed system zeromq
我正在设计一个分布式系统,其中单线程服务器进程执行CPU密集型操作.这些操作由ZeroMQ网络消息触发.
如果单线程进程正在执行CPU密集型工作,那么I/O(ZeroMQ套接字)是否会阻塞?
谢谢!
如果没有要阅读的消息,您将阻止阅读消息.
如果未完成的消息数量超过ZMQ_HWM,您将阻止发送(默认情况下它没有限制,但是对于您有多少内存存在实际限制),如果消息被丢弃,它似乎取决于套接字类型(您在达到该限制时不会阻止.
如果您不想在任何情况下阻止,可以指定标志ZMQ_NOBLOCK - 在这些情况下,zmq_send/zmq_recv将失败而不是阻塞.