【发布时间】:2020-05-13 22:54:49
【问题描述】:
考虑我有一个主线程和一个(或多个异步事件循环)和多个 python 线程同时运行的情况。
我想要一个锁,它在线程内部和事件循环内部都有效。 例如,当在异步 EventLoop 中获取锁时,其他异步循环和线程会等待完全相同的锁。
我应该如何实现这个?
我知道threading.Lock 和asyncio.Lock。但我不确定是否可以在异步任务中使用threading.Lock,反之亦然。
【问题讨论】:
-
你为什么同时使用线程和异步?通常不建议同时使用这两个功能。
-
我知道这听起来不太好,但一个旧库正在使用线程,而另一个项目源代码正在异步工作。我宁愿不使用异步重新实现库。
标签: python multithreading locking python-asyncio