Chciałbym przesłać zadania z wątku do pętli zdarzeń asyncio
(podobnie jak run_in_executor, ale na odwrót).Prześlij zadanie do pętli zdarzeń asyncio
Oto co dokumentacja asyncio
mówi o concurrency and multithreading:
Aby zaplanować zwrotnego z innego wątku, należy stosować metodę BaseEventLoop.call_soon_threadsafe(). przykład zaplanować współprogram z innego wątku:
loop.call_soon_threadsafe(asyncio.async, coro_func())
Działa to dobrze, ale rezultatem współprogram stracone.
Zamiast tego można użyć funkcji dodającej wykonane wywołanie zwrotne do przyszłości zwrócone przez async
(lub ensure_future
), aby wątek mógł uzyskać dostęp do wyniku przez concurrent.futures.Future.
Czy istnieje szczególny powód, dla którego taka funkcja nie jest zaimplementowana w standardowej bibliotece? A może brakowało mi prostszego sposobu, aby to osiągnąć?
chcesz umieścić to w pytaniu tak nie robi wydaje się być odpowiedzią –
Cóż, to jest rodzaj [częściowa odpowiedź na moje własne pytanie] (http://stackoverflow.com/help/self-answer), ponieważ może istnieć lepszy sposób na osiągnięcie tego samego. – Vincent
jeśli widzisz to w ten sposób, ok :) –