我正在處理一個簡單的項目,它將發送多個HTTP請求以檢索某些數據,解析每個URL的響應,並返回包含原始URL和一些有關信息的響應數據(線程使用的原因顯然是多個HTTP請求)。
如果在這種情況下有最佳實踐,我就會徘徊,下面是我心中想到的選項:
1.讓每個線程發送一個HTTP請求。解析數據以獲取所需信息並返回信息本身(在線程完成後通過Future<SomeDataType>
或簡單的DataType getInformation()
調用完成),然後在原始線程中創建URL-SomeDataType對
2.每個線程獲取同步列表/映射的附加參數,線程將添加URL-Information對(列表/映射的相同實例將在所有線程之間共享)。
3.較不可能的選項 - 讓每個線程只是拉動信息,並以1/2提到的任何一種方式返回,而不是解析主線程中的所有信息(這會降低性能,但幾乎需要0次同步處理,這是很好)從多個線程返回數據Vs積累響應
是否有類似的情況最佳做法?
謝謝!
從同步的角度來看,選項2和3是等效的。沒有區別 - 傳輸來自請求或處理數據的所有數據。 第一種選擇既複雜又緩慢。 –