书城图书下载

1.将图书下载的任务封装成了一个自定义的NSOperation。

2.创建NSOperationOueue,处理图书下载。图书下载器管理两类状态的图书:“下载中”、“等待中”。“下载中”图书加入到OperationOueue中执行,并保存到runningTasks数组中。“等待中”的图书保存在queuedTasks中。

3.通过下载器的属性maximumActiveDownloads控制runningTasks数量,增加新任务时比较当前下载的数量是否小于maximumActiveDownloads的值,如果小于则加入下载队列,反之则加入等待队列。书城下载不支持多本书下载,默认最下下载数为1。

注:NSOperationOueue是可以控制并行下载的数量的,这里之所以不使用NSOperationOueue控制原因是由于无法控制operation的执行顺序。

4.为了保证操作的线程安全,创建了两个OperationQueue。一个窜行队列,一个并行队列。对于runningTasks和queuedTasks的操作都在窜行队列中执行。并行队列执行NSOperation的回调。

参考资料:AFImageDownloader

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容