2013-02-07 41 views

回答

0

最快的方法是不锁定列表,而是准备一个列表节点,然后用比较和交换发布它。这种“发布”语义意味着如果CAS失败了,你首先用新的'下一个'指针更新列表节点,然后重试CAS;你这样做直到CAS成功。

+0

这是否也适用于很长的列表? –

+0

您有2个成本:一个用于搜索插入位置,另一个用于锁定。使用CAS而不是锁定列表将锁定成本降低到几乎为零。但搜索成本几乎不变;你需要一个不同的数据结构来获得更快的排序插入。 –

+0

谢谢,我只是在寻找如何锁定列表机制的工作 –