如何开发基于操作的锁机制?
How to develop lock mechanism based on operations?
我有 3 个不同的操作:add
、delete
和 get
。
虽然可以有任意数量的 get
操作 运行 并行,但不能有任何操作与 add
和 delete
并行,即,虽然添加新项目不能有任何 add
、delete
或 get
操作。这也适用于 delete
操作。
如果我只使用锁对象,就无法进行并行获取操作。这种锁机制的正确实现方式是什么?
您似乎想要 "Reader-Writer" 锁。 Python 默认情况下没有它(我认为)。您可能需要 google 搜索外部库。
This came up from a google search。我没用过,但从文档来看,用法似乎很简单。
或者,如果您想推出自己的实现,您可以使用 threading.Condition
来实现,同时跟踪读者数量。
我有 3 个不同的操作:add
、delete
和 get
。
虽然可以有任意数量的 get
操作 运行 并行,但不能有任何操作与 add
和 delete
并行,即,虽然添加新项目不能有任何 add
、delete
或 get
操作。这也适用于 delete
操作。
如果我只使用锁对象,就无法进行并行获取操作。这种锁机制的正确实现方式是什么?
您似乎想要 "Reader-Writer" 锁。 Python 默认情况下没有它(我认为)。您可能需要 google 搜索外部库。
This came up from a google search。我没用过,但从文档来看,用法似乎很简单。
或者,如果您想推出自己的实现,您可以使用 threading.Condition
来实现,同时跟踪读者数量。