asyncio
won't automatically create event loop for sub-thread, so to run async tasks in sub-thread, we need to manually create an event loop first.
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
asyncio.ensure_future(task())
loop.run_forever()