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

时间:2014-07-29 09:54:02

标签: python python-asyncio

假设我有这样的课程:

class MyClass:
    def __init__(self):
        run_some_long_time_function()

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

1 个答案:

答案 0 :(得分: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()))