首页 > 解决方案 > 线程和 EventLoops 之间的 Python 共享锁

问题描述

考虑我有一个主线程和一个(或多个异步事件循环)和多个 python 线程同时运行的情况。

我想要一个锁,它在线程内部和事件循环内部都有效。例如,当在异步 EventLoop 中获取锁时,其他异步循环和线程会等待完全相同的锁。

我应该如何实现这个?

我知道threading.Lockasyncio.Lock。但我不确定我是否可以threading.Lock在异步任务中使用,反之亦然。

标签: pythonmultithreadinglockingpython-asyncio

解决方案


我想到的想法是创建一个新的 Lock 或 Queue 类,它对每种类型的处理都有两个对象。

但是有些人已经实现了这个想法等等。例如:


推荐阅读