![](/img/trans.png)
[英]How to improve performance on two thread accesing a collection of items concurrently
[英]How to process n items in a collection concurrently
我正在建立一個從List繼承的類。 將要在運行時將項目添加到此集合中,而我想要的是讓此類在添加n個項目的每個塊后自動對其進行處理。
所以這是場景。
1]創建從列表繼承的新類-CollectionX
2]在運行時,我們將多次調用ColX.Add(T)
3]當ColX有500個或更多項目時,是將它們移到臨時區域並對其進行處理,然后將其刪除。 請記住,所有while項目仍將添加到ColX。
所以我想我的問題是如何很好地實現這一點並確保它是線程安全的。
要執行的工作必須分塊完成,因此我不認為隊列可以工作,因為您一次只能使1個項目出隊。
我認為即時通訊正在尋找比實際類型或庫更多的模式。
有人可以幫忙嗎?
不要讓CollectionX從List繼承。
而是在內部使用2個列表,將Add()設置為1,然后處理另一個。
這樣,您只需要lock
列表的交換即可。 如果出現時間問題,您甚至可以使用第三個列表來防止阻塞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.