如何使用asyncio在python3中运行并行作业?

rob*_*one 5 python python-asyncio

假设我有这样一个类:

class MyClass:
    def __init__(self):
        run_some_long_time_function()
Run Code Online (Sandbox Code Playgroud)

如何在python 3.4.1中使用asyncio并行创建此类的多个实例?

lee*_*ech 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()))
Run Code Online (Sandbox Code Playgroud)