2013-02-07 580 views

回答

0

最快的方法是不鎖定列表,而是準備一個列表節點,然後用比較和交換髮布它。這種「發佈」語義意味着如果CAS失敗了,你首先用新的'下一個'指針更新列表節點,然後重試CAS;你這樣做直到CAS成功。

+0

這是否也適用於很長的列表? –

+0

您有2個成本:一個用於搜索插入位置,另一個用於鎖定。使用CAS而不是鎖定列表將鎖定成本降低到幾乎爲零。但搜索成本幾乎不變;你需要一個不同的數據結構來獲得更快的排序插入。 –

+0

謝謝,我只是在尋找如何鎖定列表機制的工作 –