python future
Fluent Pythonより
共通のパターンが、... つまり、実行する処理を登録するときにdictを使ってFutureインスタンスと関連情報を関連付け、 Futureインスタンスが as_completeイテレータからyieldされたら、その情報を利用する
Futures — Python 3.7.2 documentation
Future objects are used to bridge low-level callback-based code with high-level async/await code.
コールバックがあるコードを、python asyncio で使うためにある?
Task Object (Future Objectのサブクラス)
asyncio.task
A Future-like object that runs a Python coroutine. Not thread-safe.
methods
cancel(), canceled(), result(), exception()
add_done_callback() remove_done_callback()
get_stack(), print_stacks()
cls.all_tasks(), cls.current_tasks()
python coroutineのときは、メインスレッドとイベントループとの協調だったけど、
taskの場合は、イベントループの中で、タスク間の協調がされていて、gather(), やjoin()でメインに通知が来る?
あとは、上にあるメソッドで、介入できる?
Javascript Promise
await 挙動の違い: JavaScript v.s. Python - Qiita
読めてない。 私はjsがECMA6に慣れてない...
promise に対応するのは task/future であるよっと
javascript - Differences between Futures in Python3 and Promises in ES6 - Stack Overflow
Not Future, but Python's Task is roughly equivalent to Javascript's Promise. See more details below.
参考:
Python3.2以降でのマルチタスク処理はThreadではなくconcurrent.futuresを使え - Qiita
シンプルな例でstartする方が理解にいいかも