让我们假设我有一个带有asyncio事件循环和其他线程运行的线程。
我可能不得不处理具有锁定机制的线程之间的同步。但锁定可能会阻止协程...并且没有其他任务(在asyncio线程中)将同时运行。
解决方案是什么?我的猜测是,一种异步的锁定初始化可以完成这项工作,但据我所知它并不存在。
准确地说:我没有引用现有的asyncio lock原语。
答案 0 :(得分:1)
使用loop.run_in_executor在线程中运行同步调用:
def synchronous_function():
with synchronous_lock:
# Do something
async def asynchronous_function():
await loop.run_in_executor(None, synchronous_function)