如何在Python3中使用asyncio运行并行任务?
假设我有一个这样的类:
class MyClass:
def __init__(self):
run_some_long_time_function()
我该如何在Python 3.4.1中使用asyncio并行创建这个类的多个实例呢?
1 个回答
7
asyncio的事件循环是单线程的,这意味着在这个事件循环中运行的任务不会并行执行。不过,你可以创建一个新的线程,并等待它完成。默认的执行器会为你创建一个线程:
loop = asyncio.get_event_loop()
asyncio.async(loop.run_in_executor(None, lambda: MyClass()))
asyncio.async(loop.run_in_executor(None, lambda: MyClass()))