我想了解一个简单的使用Twisted的Python代理示例here。代理实例化一个服务器类,然后实例化一个客户类。 defer.DeferredQueue()用于将数据从客户端类传递到服务器类。了解代理示例中的defer.DeferredQueue()
我现在想了解defer.DeferredQueue()在这个例子中的工作原理。例如,这是什么说法的意义:
self.srv_queue.get().addCallback(self.clientDataReceived)
,它是类似于
self.cli_queue.get().addCallback(self.serverDataReceived)
声明。
当执行self.cli_queue.put(False
)或self.cli_queue = None
时会发生什么?
只是试图与扭曲现在握手,所以事情似乎很艰巨。关于事物如何连接的一个小解释将使得更容易掌握这一点。
感谢您的回答。要更清楚一点:“该对象将作为参数传递给该方法。”应被理解为“放入DeferredQueue中的对象将作为参数传递给'callback'方法”。正确? –
是的。当从队列中检索放入队列中的对象('get()'从队列中检索并移除对象)时,它将被传递给回调方法。 –