スレッドからasyncio
イベントループにジョブをサブミットしたい(ちょっとrun_in_executorと同じですが、その逆です)。ここでasyncioイベントループにジョブを提出する
がasyncio
ドキュメントはconcurrency and multithreadingについて言っているのです:
別のスレッドからのコールバックをスケジュールするには、BaseEventLoop.call_soon_threadsafe()メソッドを使用する必要があります。
loop.call_soon_threadsafe(asyncio.async, coro_func())
正常に動作しますが、コルーチンの結果が失われた:別のスレッドからコルーチンをスケジュールする 例。
代わりに、スレッドがconcurrent.futures.Futureを通じて結果にアクセスできるようにasync
(またはensure_future
)によって返された未来に行って、コールバックを追加する機能を使用することが可能です。
このような機能が標準ライブラリに実装されていない特定の理由はありますか?あるいは、私はそれを達成するためのより簡単な方法が欠けていましたか?
のdoesnt:
私はもともとまだとして実装することができconcurrent.futures.Executorのサブクラスを投稿答えのように見える –
同じことを達成するためのより良い方法があるかもしれないので、それは一種の[自分の質問に対する部分的な答え](http://stackoverflow.com/help/self-answer)です。 – Vincent
あなたがそのように表示された場合、ok :) –