2012-07-13 34 views
0

我正在從遠程服務器實現優化的圖像下載機制。圖像下載的建築設計

我想到了兩種不同的認識。


1.創建一個新線程並以單線程的方式以異步方式下載所有圖像。
2.創建線程下載每個圖像。假設我想下載50張圖片,那麼會有50個線索下載這些圖片。

哪種方法在設計和優化方面更好?

謝謝,
吉姆。

+0

使用EGOImageView ..這是一個異步映像dowloaded .... https://github.com/enormego/EGOImageLoading/ – userar 2012-07-13 09:50:36

回答

1

您的解決方案都有缺陷。

1)只有一個線程意味着你只下載一個圖像?這似乎效率低下

2)出於同樣的原因,有一次下載是一個壞主意,有50個圖像,同時下載是一個糟糕的性能想法,並會放慢萬物。還要考慮下載數據的線程對於系統(網絡I/O,磁盤I/O等等)是資源昂貴的。

我可以建議不要重新發明輪子並使用可可/可可觸摸實現隊列,這意味着您可以添加多少操作(在這種情況下,操作是圖像下載),但您可以指定最大併發操作數(通過maxConcurrentOperationCount屬性)。

NSOperationQueue處理所有多線程的東西,自iOS 4以來它使用GCD來執行操作。