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

时间:2018-01-11 22:39:48

标签: python python-3.x python-asyncio

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

1 个答案:

答案 0 :(得分:2)

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

如果您想要同时提交协同程序而不等待结果,则应使用asyncio.ensure_futurecreate_task中的task)创建difference

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