标签: multithreading linked-list
有两个正在运行的线程,每个线程都有一个节点,我需要将它们插入到单链表的列表中。
答案 0 :(得分:0)
最快的方法是不锁定列表,而是准备一个列表节点,然后使用compare-and-swap发布它。这种“发布”语义意味着如果CAS失败,那么首先用新的“下一个”指针更新列表节点,然后重试CAS;你这样做直到CAS成功。