有大量关于无锁双向链表的研究。同样,在无锁跳过列表上也有大量研究。然而,据我所知,没有人管理过无锁的双向链接跳过列表。有没有人知道任何相反的研究,或者是这种情况的原因?
编辑:特定场景是用于构建快速分位数(50%、75% 等)累加器。样本在 O(log n) 时间内被插入到跳过列表中。通过维护当前分位数的迭代器,我们可以在 O(1) 时间内将插入的值与当前分位数进行比较,并且可以轻松确定插入的值是在分位数的左侧还是右侧,以及分位数的多少结果需要移动。左移需要前一个指针。
据我了解,面对同时插入和删除的多个线程,任何困难都来自保持先前的指针一致。我想这个解决方案几乎肯定会巧妙地使用指针标记。