【发布时间】:2020-01-08 16:38:14
【问题描述】:
我正在寻找异步任务和方法/函数之间通信的最佳解决方案,这些方法/函数在 concurrent.futures 的线程池执行器中运行。在之前的同步项目中,我会使用queue.Queue 类。我认为任何方法都应该是线程安全的,因此 asyncio.queue 将不起作用。
我见过人们扩展 queue.Queue 类来做类似的事情:
class async_queue(Queue):
async def aput(self, item):
self.put_nowait(item)
async def aget(self):
resp = await asyncio.get_event_loop().run_in_executor( None, self.get )
return resp
有没有更好的方法?
【问题讨论】:
标签: python python-asyncio