首页 > 解决方案 > 使用 asyncio.run 时,如何将线程池执行器提交给事件循环?

问题描述

在 Python文档中,它指出:

应用程序开发人员通常应该使用高级 asyncio 函数,例如 asyncio.run(),并且应该很少需要引用循环对象或调用其方法。

还可以考虑使用 asyncio.run() 函数而不是使用较低级别的函数来手动创建和关闭事件循环。

如果我需要使用asyncioand a ThreadPoolExecutor,我将如何将执行程序提交给事件循环?

通常你可以这样做:

   # Create a limited thread pool.
    executor = concurrent.futures.ThreadPoolExecutor(
        max_workers=3,
    )

    event_loop = asyncio.get_event_loop()
    try:
        event_loop.run_until_complete(
            run_blocking_tasks(executor)
        )
    finally:
        event_loop.close()

标签: python-3.xpython-asynciothreadpoolexecutor

解决方案


推荐阅读