如何在Python3中使用asyncio运行并行任务?

5 投票
1 回答
1332 浏览
提问于 2025-04-18 15:10

假设我有一个这样的类:

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()))

撰写回答