задать вопрос ветке asyncnotifier - PullRequest
1 голос
/ 18 октября 2010

Я не совсем понимаю, как работает асинхронизатор.Что именно врезается в уведомитель?Это просто наблюдатель с резьбой?Или каждый из обратных вызовов к функциям-обработчикам выполняется в своем собственном потоке?

Документация по существу ничего не говорит о специфике класса.

1 Ответ

3 голосов
/ 20 октября 2010

AsyncNotifier не использует многопоточность, он использует асинхронный обработчик сокетов цикл.

Если вы говорите о ThreadedNotifier , тогда каждый обратный вызов, кажется, вызывается в том же потоке для уведомителя .

Это означает, что даже если у вас есть несколько EventHandlers, зарегистрированных с некоторым WatchManager, они все будут выдаватьобратные вызовы из того же потока.

Я не могу найти, где это явно задокументировано, но кажется неявным из сгенерированной документации для метода ThreadedNotifier.loop(), где говорится:

События читаются только один раз раз в минуту (в лучшем случае - read_freq, timeout) секунды, и только если размер событий для чтения> = порог.

..., который, как я понял, работает какдовольно простой цикл в одном потоке, выдающий обратные вызовы из этого цикла.

Я экспериментировал, просто печатая результат threading.current_thread() в обратных вызовах, и он проверял это.

(Вы могли бы всегдаs подайте проблему , чтобы запросить более конкретную документацию, если вы считаете, что это оправдано.)

...