【发布时间】:2015-09-15 13:00:44
【问题描述】:
我想将线程中的作业提交到 asyncio 事件循环(就像 run_in_executor 一样,但反过来)。
这是asyncio 文档中关于concurrency and multithreading 的内容:
要从不同的线程安排回调,应使用 BaseEventLoop.call_soon_threadsafe() 方法。 从不同线程调度协程的示例:
loop.call_soon_threadsafe(asyncio.async, coro_func())
效果很好,但是协程的结果丢失了。
相反,可以使用一个函数将完成回调添加到由async(或ensure_future)返回的未来,以便线程可以通过concurrent.futures.Future 访问结果。
标准库中没有实现这样的功能是否有特殊原因?还是我错过了一种更简单的方法来实现这一目标?
【问题讨论】:
标签: python multithreading python-asyncio