Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
loop.create\u任务和asyncio.run\u coroutine\u threadsafe之间的Python异步IO差异_Python_Python 3.x_Python Asyncio - Fatal编程技术网

loop.create\u任务和asyncio.run\u coroutine\u threadsafe之间的Python异步IO差异

loop.create\u任务和asyncio.run\u coroutine\u threadsafe之间的Python异步IO差异,python,python-3.x,python-asyncio,Python,Python 3.x,Python Asyncio,从事件线程外部将协同程序推送到事件线程上的Python方式是什么?实际信息: 从Python3.7开始asyncio。应该使用create_task(coro)而不是asyncio。确保将来和循环。创建任务以创建任务 原始答案: 需要明确的是:通常异步IO在单线程中运行。并发性不是由线程提供的,而是通过使用单个事件循环来运行不同的协同路由 如果您想提交并发运行的协同程序而不等待其结果,则应使用asyncio创建。确保未来(从创建任务) 但是,如果您的应用程序使用多个线程,并且您希望将从一个线程运

从事件线程外部将协同程序推送到事件线程上的Python方式是什么?

实际信息:

从Python3.7开始
asyncio。应该使用create_task(coro)
而不是
asyncio。确保将来
循环。创建任务
以创建任务

原始答案:

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

如果您想提交并发运行的协同程序而不等待其结果,则应使用
asyncio创建。确保未来
(从
创建任务


但是,如果您的应用程序使用多个线程,并且您希望将从一个线程运行的协同程序提交到另一个线程中运行的事件循环,那么您应该使用
run\u coroutine\u threadsafe
。在另一个线程中运行事件循环,并从主线程向中提交协同程序,这很好。

Hi@Mikhail,也许现在更新您的答案更好。
asyncio。创建任务(coro)
是可能的。@LeonardoRick感谢您的注意!更新!