2012-07-13 70 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来执行操作。