我有一个算法,里面有 fetch_and_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 的前一个值。这确保锁节点仅与一个线程一起使用:该线程将其进行处理并替换与其他节点。其他线程将采用我们放置在此处的节点。
关于algorithm - fetch_and_store 操作的作用是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39962811/