витые отложенные / обратные вызовы и асинхронное выполнение

Я пытаюсь понять, как сделать мой код более асинхронным с помощью twisted.

  • Функция возвращает отложенный объект
  • , затем я добавляю список callbacks
  • первый обратный вызов будет вызван после того, как отложенная функция предоставит некоторый результат через deferred_obj.callback
  • , затем в цепочке обратных вызовов первый обратный вызов сделает что-то с данными и вызовет второй обратный вызов
  • и т. Д.

, однако связанные обратные вызовы не будут считаться асинхронными, потому что они связаны, и цикл событий будет запускать каждый из них одновременно, пока их больше не будет, верно?

Однако, если у меня есть отложенный объект, и я прикрепляю в качестве обратного вызова deferred_obj.callback, как в d.addCallback (deferred_obj.callback) , то это будет считаться асинхронным, потому что deferred_obj ожидает данных, а затем метод, который будет передавать данные, также ожидает данных, однако как только объект i d.callback 'd' обрабатывает данные затем он вызывает deferred_obj.callback, однако, поскольку этот объект отложен, в отличие от случая связанных обратных вызовов, он будет выполняться асинхронно ... правильно?

Предполагая, что весь мой код неблокирующий, это означает, что связанные обратные вызовы НЕ являются асинхронными а связанные отсрочки верны?

6
задан scytale 5 May 2015 в 09:48
поделиться