Dot-Net

.NET 的無鎖和執行緒安全 IList<T>

  • April 30, 2013

是否有實現 IList 的無鎖和執行緒安全的資料結構?

自然,無鎖我的意思是一種在.NET中不使用鎖定原語而是使用互鎖操作/原子操作來實現執行緒安全的實現……顯然在並發資料結構下沒有一個……

有沒有人看到一個漂浮在周圍?

我已經看到了一個在amino-cbbs中實現的java ,稱為LockFreeVector ,但到目前為止還沒有用於.NET。有任何想法嗎?

好吧,我在任何地方都找不到這樣的課程;所以**我試了一下**。

ConcurrentList&lt;T&gt;我的課程的原始碼可在 GitHub 上找到

它是無鎖的、執行緒安全的(我認為,基於我的單元測試),並且實現了IList&lt;T&gt;.

支持InsertRemoveAt/RemoveClear

我很高興地發現我的實現(我獨立提出)與軟體世界中一些受人尊敬的人發布的資料結構非常相似。

有關實現本身的相當簡短的討論,請參閱我最近的部落格文章

目前,它根本沒有記錄,考慮到某些程式碼有多“棘手”,這有點糟糕:(

無論如何,如果您查看並發現錯誤或其他問題,請給我一個新的。

無論如何,可能值得您花時間檢查一下。如果你這樣做,讓我知道你的想法。

引用自:https://stackoverflow.com/questions/5070495