витая: разница между `defer.execute` и` threads.deferToThread`

В чем разница междуdefer.execute() а такжеthreads.deferToThread() в витой? Оба принимают одинаковые аргументы - функцию и параметры для вызова - и возвращают deferred, который будет вызван результатом вызова функции.

threads Версия явно заявляет, что она будет запущена в потоке. Однако еслиdefer версии нет, тогда какой смысл ее называть? Код, работающий в реакторе, никогда не должен блокировать, поэтому любая функция, которую он вызывает, не должна блокироваться. В этот момент вы могли бы просто сделатьdefer.succeed(f(*args, **kwargs)) вместоdefer.execute(f, args, kwargs) с такими же результатами.

Ответы на вопрос(1)

Ваш ответ на вопрос