图像下载的建筑设计

时间:2012-07-13 09:36:21

标签: iphone ios4 architecture

我正致力于从远程服务器实现优化的图像下载机制。

我想到了两种不同的方法。

1
。创建一个新线程并在该单个线程中以异步方式下载所有图像。
2。创建线程以下载每个图像。假设我想下载50个图像,那么将有50个线程下载这些图像。

哪种方法在设计和优化方面更好?

谢谢,
吉姆。

1 个答案:

答案 0 :(得分:1)

你的解决方案都有陷阱。

1)只有一个帖子意味着你只能下载一张图片吗?这似乎效率低下

2)出于同样的原因,有一次下载是一个坏主意,有50个图像同时下载是一个糟糕的性能想法,并将减慢每一个。还要考虑下载数据对于系统而言资源昂贵的线程(网络I / O,磁盘I / O等)。

我可以建议不要重新发明轮子并使用NSOperationQueue作为队列的cocoa / cocoa touch实现,这意味着你可以添加多少操作(在你的情况下,操作是图像下载)但您可以指定最大并发操作数(通过maxConcurrentOperationCount属性)。

NSOperationQueue处理所有多线程的东西,从iOS 4开始,它使用GCD来执行操作。