概述
设计明智和性能明智哪种方法建议用于处理多个Zeromq插座,为什么?
ZeroMQ使用的Tornado的IOLoop是否真的比使用while循环中的Poller处理多个套接字的cpu少?
我认为性能没有任何差异,但设计上存在差异.
如果是poller
您注册要轮询的套接字,然后使用if块来识别和使用每个套接字.
while should_continue:
socks = dict(poller.poll())
if socket_pull in socks and socks[socket_pull] == zmq.POLLIN:
Work_on_socket_pull ....
if socket_sub in socks and socks[socket_sub] == zmq.POLLIN:
Work_on_socket_sub ....
如果是eventloop
但是,当您处理多个套接字时,使用事件循环非常优雅,因为您注册了回调.
stream_pull = zmqstream.ZMQStream(socket_pull)
stream_pull.on_recv(getcommand)
stream_sub = zmqstream.ZMQStream(socket_sub)
stream_sub.on_recv(process_message)
从第二个示例中可以看出,if块被删除了.您可以在其他地方编写套接字消息传递操作,并在套接字准备就绪时注册回调方法.在这种情况下on_recv()
我希望这能澄清你的问题.
总结
以上是编程之家为你收集整理的python – ZeroMQ Poller vs Tornados EventLoop全部内容,希望文章能够帮你解决python – ZeroMQ Poller vs Tornados EventLoop所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧