algorithm - fetch_and_store 操作的作用是什么

标签 algorithm memory concurrency lock-free

我有一个算法,里面有 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/

相关文章:

java - 如何有效地重置线程池

emacs - 如何在后台执行自动完成查询?

algorithm - 每个递归算法都可以用动态规划改进吗?

algorithm - Scala 树/图实现

ruby - 在并发 Ruby 中链接一组任务

java - 我可以使用什么符号表来存储约 5000 万个字符串并进行快速查找,而不会耗尽堆空间?

c - malloc/calloc 分配一个已经分配的地址

php - 多表分页

algorithm - 如何将有序文本打包成任意二维多边形?

c - 在 C 中取消引用指向 0 的指针