#!/usr/bin/env python3 import asyncio @asyncio.coroutine def sleeper(name, number): print("Task", name) yield from asyncio.sleep(number) return number tasks = [ asyncio.Task(sleeper("A", 2)), asyncio.Task(sleeper("B", 3)), asyncio.Task(sleeper("C", 4)), asyncio.Task(sleeper("D", 5)), asyncio.Task(sleeper("E", 6)) ] @asyncio.coroutine def watcher(tasks): for t in asyncio.as_completed(tasks): r = yield from t loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.Task(watcher(tasks))) loop.close()