Python 线程和事件循环之间的共享锁
Python shared lock between Threads and EventLoops
考虑这样一种情况,我的主线程有一个(或多个异步事件循环)和多个 python 线程,同时 运行。
我想要一个锁,它既可以在线程内部工作,也可以在事件循环内部工作。
例如,当在异步 EventLoop 中获取锁时,其他异步循环和线程会等待完全相同的锁。
我该如何实施?
我知道 threading.Lock
和 asyncio.Lock
。但是我不确定我是否可以在异步任务中使用 threading.Lock
,反之亦然。
我想到的想法是创建一个新的 class Lock 或 Queue,每个类型的处理都有两个对象。
但有些人已经实现了这个想法,甚至更多。例如:
考虑这样一种情况,我的主线程有一个(或多个异步事件循环)和多个 python 线程,同时 运行。
我想要一个锁,它既可以在线程内部工作,也可以在事件循环内部工作。 例如,当在异步 EventLoop 中获取锁时,其他异步循环和线程会等待完全相同的锁。
我该如何实施?
我知道 threading.Lock
和 asyncio.Lock
。但是我不确定我是否可以在异步任务中使用 threading.Lock
,反之亦然。
我想到的想法是创建一个新的 class Lock 或 Queue,每个类型的处理都有两个对象。
但有些人已经实现了这个想法,甚至更多。例如: