Я просматривал документы о торнадо.

При чтении на IOLoop есть содержание, в котором говорится, как показано ниже.

Обычно вы должны использовать IOLoop.current по умолчанию, когда создание асинхронного объекта и использование IOLoop.instance, когда вы означает связываться с основным потоком из другого.

Имеет смысл использовать метод instance () для связи по многопоточности с использованием одного глобального IOLoop instance.

Но что здесь асинхронный объект и почему я должен использовать current () в случае асинхронного объекта?

Ответы (1)

«Асинхронный объект» означает просто объект типа IOStream или HTTPServer, который имеет асинхронные методы.

Вы должны почти всегда использовать IOLoop.current () вместо IOLoop.instance (). В большинстве случаев они эквивалентны, потому что у вас есть только один поток и один IOLoop, но когда они разные, current () обычно то, что вам нужно. Единственный раз, когда следует использовать IOLoop.instance (), - это когда A) у вас несколько потоков и B) поток, отличный от потока IOLoop, должен вызвать add_callback (который является единственный способ, которым другой поток может взаимодействовать с IOLoop).

2022 WebDevInsider