异步下载多个文件与同步

时间:2014-07-13 16:08:01

标签: ios multithreading asynchronous download downloading

我有一个iOS应用程序,我需要在播放器启动之前下载多个音频文件。 (所有文件都需要先下载,因为它们同时作为多曲目歌曲播放。)

我知道从主线程异步下载的优势(不阻止用户界面等),但我想知道是否有任何优势,彼此异步下载每个文件,与所有相同的背景线程。如果存在差异,哪种方法可以最快地下载所有文件?

1 个答案:

答案 0 :(得分:1)

这真的是网络带宽的问题。最有可能的是,如果您尝试同时下载10个文件,则需要花费的时间(也可能更长),而不是一次下载相同的10个文件。

用户的Internet连接每秒只允许这么多数据。假设每次下载最大化,一次下载多个文件意味着必须在文件之间分配最大吞吐量。

您最好的选择是设置并发操作队列。将每个下载队列作为单独的操作。然后通过设置操作队列来实验,以支持从1到n并发操作的任何地方。在不同时间多次进行测试,并跟踪完成所有下载所需的时间。查看最佳整体平均值的结果。请记住,对于速度较慢的2G蜂窝连接的用户而言,结果可能与使用超快速家庭Wi-Fi连接的用户的结果不同。