首页 文章

python asyncio:如何最好地使用锁线程?

提问于
浏览
0

让我们假设我有一个带有asyncio事件循环和其他线程运行的线程 .

我可能不得不处理具有锁定机制的线程之间的同步 . 但锁可能会阻止协程......并且没有其他任务(在asyncio线程中)将同时运行 .

解决办法是什么 ?我的猜测是,一种异步的锁原始可以完成这项工作,但据我所知它并不存在 .

确切地说:我没有提到现有的asyncio lock原语 .

1 回答

  • 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)
    

相关问题