本文旨在介绍一种支持并发读写的无锁哈希表结构。其核心思想来源于两篇论文:
Michael, M. M. High performance dynamic lock-free hash tables and list-based sets. In Proceedings of the fourteenth annual ACM
symposium on parallel algorithms and architectures, ACM Press, (2002), 73-82.
Ori Shalev and Nir Shavit. Split-ordered lists: Lock-free extensible hash tables. J. ACM 53, 3 (May 2006), 379-405.
其中,第一篇论文重点介绍了无锁单链表的实现原理。有了这篇论文,已经可以实现无锁哈希表了(将冲突链替换为论文中表述的无锁单链表)。第
二篇论文更进一步,提出“分裂排序表”的概念,实现了无锁哈希表的动态扩容。基于第二篇论文的分裂排序表已经在URCU库中实现,参考:https://g