我有兩個詞典列表。我將針對每個線程查詢一個用戶,最多可達50個用戶/線程。線程安全列表或連續多個列表?
第一個列表「users」每個線程只包含一個條目。 第二個列表「items」每個線程可能包含數千個條目(300是一個好的平均值)。現在,我在單個線程中按順序查詢用戶:首先,收集一個用戶的數據(這是同步實現的,包括約100ms的純等待),然後用戶將被添加到「用戶」 ,然後每個項目將被一次處理一個,並添加到「項目」(處理需要大約十幾毫秒的1000個項目)。
雖然訂購了這些清單,但我不必保留任何訂單。
現在我認爲如下:
- 第一個列表是一個ConcurrentBag的好地方。
- 對於第二個列表,最好使用多個列表,每個線程一個,最後連在一起。
但是在我繼續這樣做之前,我想問問你這是最好的方法,還是你能想出更好的解決方案。在待並行化的部分中,我不會對任何列表執行任何操作,但會添加項目。
爲什麼每個線程查詢一個用戶是否有特殊原因?在不知道應用程序的設置/設計的情況下,除了多線程外,沒有其他理由的線程看起來像是很多線程。 – Joeb454 2014-10-16 13:35:16
@ Joeb454我們查詢的原始API(來自其他供應商)的設計允許每次調用只請求一個用戶,因爲每個用戶的數據可能存儲在不同的端點上。 – Alexander 2014-10-16 13:58:47