Concurrency 二叉树中的彼得森锁
我对二叉树中的彼得森算法有些怀疑 我正在做“多处理器编程的艺术”一书的一些练习,我被困在第2章,ex 13: 推广双线程Peterson锁的另一种方法是 二叉树中的多个双线程Peterson锁。假设n是2的幂。每个线程分配一个叶锁,它与另一个线程共享。每个锁 将一个线程视为线程0,另一个线程视为线程1。“ 没关系,但是什么?如果Peterson只处理2个线程,那么这棵树将如何处理?一棵树只有一片叶子?(因为如果我有两个线程,每个叶子处理两个线程…结果将是一个有一个叶子的树?) 在树锁的获取方法中,线程每两个线程获取一次 Peterson锁从该线程的叶到根。树锁的释放方法 树锁解锁线程已获取的每个2线程Peterson锁, 从根到叶。” 他说这话是什么意思?叶如何通过根节点?非常困惑!!:Concurrency 二叉树中的彼得森锁,concurrency,locking,mutual-exclusion,Concurrency,Locking,Mutual Exclusion,我对二叉树中的彼得森算法有些怀疑 我正在做“多处理器编程的艺术”一书的一些练习,我被困在第2章,ex 13: 推广双线程Peterson锁的另一种方法是 二叉树中的多个双线程Peterson锁。假设n是2的幂。每个线程分配一个叶锁,它与另一个线程共享。每个锁 将一个线程视为线程0,另一个线程视为线程1。“ 没关系,但是什么?如果Peterson只处理2个线程,那么这棵树将如何处理?一棵树只有一片叶子?(因为如果我有两个线程,每个叶子处理两个线程…结果将是一个有一个叶子的树?) 在树锁的获取方法中
谢谢你们 使用n个双线程Peterson锁并将其排列在二叉树中的一般方法如下: 获取锁:
我希望这个解释能为您服务。谢谢您,乔斯!我真的很困惑这个问题!现在我可以开始了!非常感谢=)我认为这句话太复杂了