在链表中插入节点

时间:2013-02-07 09:42:06

标签: multithreading linked-list

有两个正在运行的线程,每个线程都有一个节点,我需要将它们插入到单链表的列表中。

1 个答案:

答案 0 :(得分:0)

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