gpt4 book ai didi

loop.create_task 和 asyncio.run_coroutine_threadsafe 之间的 Python asyncio 区别

转载 作者:太空宇宙 更新时间:2023-11-03 15:48:41 34 4
gpt4 key购买 nike

从事件线程外部将协程推送到事件线程的 pythonic 方法是什么?

最佳答案

更新信息:

从Python 3.7 高级函数asyncio.create_task(coro)开始was added并且可以代替 asyncio.ensure_futureloop.create_task 来创建任务。

Python 文档 refers asyncio.create_task(coro) 关于“创建新任务的首选方式”。

原答案:

需要说明的是:asyncio 通常在单线程中运行。并发性不是由线程提供的,而是通过使用单个事件循环来运行不同的协程。

如果你想提交并发运行的协程而不等待它的结果你应该创建task使用 asyncio.ensure_future(来自 create_taskdifference)。

但是,如果您的应用程序使用多个线程,并且您希望将从一个线程运行的协程提交到在另一个线程中运行的事件循环,则应使用 run_coroutine_threadsafe。这里很好example在另一个线程中运行事件循环并从主线程提交协程。

关于loop.create_task 和 asyncio.run_coroutine_threadsafe 之间的 Python asyncio 区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48216951/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com