1. ホーム
  2. python

[解決済み] Python 3.5でコルーチンとfuture/taskの違い?

2022-08-26 08:11:34

質問

ダミー関数があるとします。

async def foo(arg):
    result = await some_remote_call(arg)
    return result.upper()

何が違うのか。

import asyncio    

coros = []
for i in range(5):
    coros.append(foo(i))

loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait(coros))

そして

import asyncio

futures = []
for i in range(5):
    futures.append(asyncio.ensure_future(foo(i)))

loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait(futures))

備考 : この例は結果を返しますが、これは質問の焦点ではありません。戻り値が重要な場合は gather() の代わりに wait()

ensure_future()

wait(coros)