我是否需要将Mutex与对象一起使用 可能同时发生的实例 更新不同的对象实例?
这是一个例子:
我有5个Pen对象实例, 50个作者线程和 3个Paper对象实例。
任何数量的作者可能会使用任意数量的笔在任何给定的论文上书写。
我创建了阻塞队列来保护作者访问的Pen对象。
但是,Pen实例需要从Author线程获取数据并将其附加到(指定的)Paper实例。
问题:我是否需要阻止 之前写笔的行动 更新Paper实例?
答案 0 :(得分:0)
您可能必须同步纸张的追加操作或阻止访问,否则您可能有5位作者试图同时写入一篇论文。因此,只要作者正在访问某篇论文,您就需要阻止其他论文。
如果一个作者可以使用多个笔(我现在无法理解;))你也可以防止多个笔同时写入纸张,所以在纸上写一个同步(笔)写/附加方法。
答案 1 :(得分:0)
为什么你的Pen对象有任何状态?在我看来,Paper是国家持有者。由于某种原因,笔是有限的资源,但我不明白为什么你需要在其中拥有状态。
如果您的笔是无状态的,或者至少具有不可变状态,则根本不需要它有任何锁定。