我有3种不同的操作:add
、delete
和get
。
虽然可以有任意数量的get
操作并行运行,但不能有任何与add
和delete
并行的操作,即,在添加新项时,不能有任何add
、delete
或get
操作。这也适用于delete
操作。
如果我只使用一个锁对象,并行get操作就不能完成。实现这种锁定机制的正确方式是什么?
发布于 2020-01-22 21:01:38
看起来你想要一个“读写器”锁。Python默认没有它(我认为)。你可能想用谷歌搜索外部库。
This came up from a google search。我还没有用过它,但从文档中看,用法似乎相当简单。
或者,如果您想推出自己的实现,可以使用threading.Condition
来实现,同时跟踪读取器的数量。
https://stackoverflow.com/questions/59859902
复制相似问题