我有一个算法,里面有一个fetch_和_store操作。除了这一行:pred : ^qnode := I->prev := fetch_and_store (L, I)
之外,我对算法有全面的了解。这是CLH算法(用于并发编程)。有人能帮我理解这部分吗?
算法:http://www.cs.rochester.edu/research/synchronization/pseudocode/ss.html#clh
最佳答案
fetch_and_store (L, I)
原子地将i写入l并返回l的上一个值。这将确保锁节点只与一个线程一起工作:线程接受它进行处理并替换为其他节点。其他线程将使用我们在这里放置的节点。