您没有使用单个锁。
您正在使用 锁和条件变量
self.read_lock = t.Condition(t.Lock())
条件变量也是并发原语。比锁更复杂的一个。
注意: 请不要调用条件变量对象
read_lock
编辑: 您的代码对我来说似乎是正确的,因为它解决了“
第一读者—作家”的问题
。正如您所说,这可能会饿死作家。这不是一个小问题。读者写作者背后的逻辑是,读可能比写更多
。额外的锁可以解决 第二个读者-作家问题 ,即作家不会挨饿。确实,当有作家在等待资源时,读者必须等待。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)