Python Tornado I / O循环current()vs instance()方法

时间:2016-01-01 07:03:14

标签: python-2.7 asynchronous tornado python-multithreading

我一直在查看龙卷风文件。

在阅读IOLoop时,有下面的内容。

  

通常,您应该使用IOLoop.current作为默认值   构造异步对象,并在使用时使用IOLoop.instance   意思是从另一个主线程传达到主线程。

我必须使用instance()方法通过共享一个全局IOLoop实例的多线程进行通信。

但这里的asynchronous object是什么,为什么我应该current()

使用asynchronous object?

1 个答案:

答案 0 :(得分:5)

“异步对象”只是指具有异步方法的IOStreamHTTPServer之类的对象。

您应该几乎总是使用IOLoop.current()而不是IOLoop.instance()。在大多数情况下,它们是等效的,因为您只有一个线程和一个IOLoop,但当它们不同时current()通常是您想要的。应该使用IOLoop.instance()的唯一时间是A)你有多个线程而且B)除了IOLoop线程之外的线程需要调用add_callback(这是另一个线程可以与之交互的唯一方式) IOLoop)。