Asynchronous 根锁、子锁和多锁
我所拥有的简化结构是:Asynchronous 根锁、子锁和多锁,asynchronous,locking,distributed,Asynchronous,Locking,Distributed,我所拥有的简化结构是: 一些单根 每个根都有许多子元素(例如100个) 用户可以更新根目录信息,不允许对子目录执行其他操作(因为根目录更改可能会影响所有子目录) 此外,用户还可以对子对象进行操作(当然,如果root未被使用)。例如,用户可以同时更改2个子项,这是允许的,因为每个子项都是独立的 我需要此结构中的锁,以确保没有损坏: 使用儿童时,锁定儿童。这将不允许在同一时间对同一子级执行两个操作 使用root时,锁定root和所有子级。这将禁止在根目录更新时对任何子目录执行操作 这里让我烦
- 一些单根
- 每个根都有许多子元素(例如100个)
- 使用儿童时,锁定儿童。这将不允许在同一时间对同一子级执行两个操作
- 使用root时,锁定root和所有子级。这将禁止在根目录更新时对任何子目录执行操作
有没有更好的解决办法我看不出来?你遗漏了两件事。首先,多个线程同时从一个节点读取数据是安全的,只要没有人向它写入数据。其次,子节点可以被视为较小树的自己的根,因此相同的算法/解决方案可以应用于除叶节点之外的所有节点。第一个是最重要的。以下是如何做到这一点: 在树中的所有节点上使用读/写互斥锁。这允许任意数量的进程同时读取,或允许单个进程随时写入节点 阅读: