python里怎么实现多个协程一起执行,只要完成

2024-11-07 19:14:58
推荐回答(1个)
回答1:

import asyncio
 
 
async def phase(i):
    print('in phase {}'.format(i))
    await asyncio.sleep(0.5 - (0.1 * i))
    print('done with phase {}'.format(i))
    return 'phase {} result'.format(i)
 
 
async def main(num_phases):
    print('starting main')
  兄圆  phases = [
    丛虚    phase(i)
        for i in range(num_phases)
    ]
    print('waiting for phases to complete')
    results = []
    for next_to_complete in asyncio.as_completed(phases):
        answer = await next_to_complete
        print('received answer {!r}'.format(answer))
     渗尘燃   results.append(answer)
    print('results: {!r}'.format(results))
    return results
 
 
event_loop = asyncio.get_event_loop()
try:
    event_loop.run_until_complete(main(3))
finally:
    event_loop.close()