選擇最佳的線程安全集合:BlockingCollection
,ConcurrentBag
或List<T>
>
WPF應用程式中有關冷凍Parallel.ForEach
循環的最新討論突顯了選擇正確的線程安全集合的重要性。 本文比較了BlockingCollection
和ConcurrentBag
>
List<T>
BlockingCollection
BlockingCollection
IProducerConsumerCollection<T>
阻止刪除直到可用資料為止。
ConcurrentBag
BlockingCollection
,提供執行緒安全的並發存取而無需阻止或容量限制。 添加和拆卸同時發生而無需線程阻塞。 ConcurrentBag<T>
在連結的問題之類的方案中,IProducerConsumerCollection<T>
BlockingCollection
都不需要阻止和容量。
態
選擇取決於應用程式需求:BlockingCollection
ConcurrentBag
>使用
>使用
用於執行緒安全並發存取而無需阻止或容量約束。BlockingCollection
ConcurrentBag
List<T>
缺乏線程安全性。 在多線程上下文中使用它風險種族條件和資料損壞。 在多執行緒應用程式中始終優先權ConcurrentBag
或用於執行緒安全。
以上是BlockingCollection,ConcurrentBag或列表:我應該選擇哪些線程安全集合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!