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