我有一个算法,里面有一个fetch_and_store操作。我全局了解除此行以外的算法:pred : ^qnode := I->prev := fetch_and_store (L, I)
。这是CLH算法(用于并发编程)。有人可以帮助我理解这一部分。
算法:http://www.cs.rochester.edu/research/synchronization/pseudocode/ss.html#clh
答案 0 :(得分:2)
fetch_and_store (L, I)
原子地将I写入L并返回L的先前值。这确保了锁定节点仅与一个线程一起使用:线程将其用于处理并替换为其他节点。其他线程将采用我们放在这里的节点。