twisted: Unterschied zwischen `defer.execute` und` threads.deferToThread`

Was ist der Unterschied zwischendefer.execute() undthreads.deferToThread() in verdreht? Beide verwenden dieselben Argumente - eine Funktion und Parameter, mit denen sie aufgerufen werden - und geben eine verzögerte zurück, die mit dem Ergebnis des Aufrufs der Funktion ausgelöst wird.

Dasthreads version gibt explizit an, dass es in einem Thread ausgeführt wird. Wenn jedoch dasdefer version nicht, was wäre dann der Sinn, es zu nennen? Code, der im Reaktor ausgeführt wird, sollte niemals blockiert werden. Daher müsste jede aufgerufene Funktion nicht blockiert werden. An diesem Punkt könnten Sie einfach @ tdefer.succeed(f(*args, **kwargs)) Anstatt vondefer.execute(f, args, kwargs) mit den gleichen Ergebnissen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage