美文网首页
基于NSOperation的多线程下载

基于NSOperation的多线程下载

作者: 汤志强 | 来源:发表于2019-12-20 17:48 被阅读0次

示例

前言

很多iOS应用都有上面实中的需求,按照规定最大N个数据并发下载,支持中断后,断点续传等。
iOS对于多线程技术有pthread, NSThread, GCD, NSOperation 4种主要实现方式。iOS著名网络框架AFNetworkingSDWebImage图片下载框架都基于NSOperation来下载数据。
这是为嘛呢??? 难道NSOperation比较牛逼么?这肯定是有原因的。哈哈~

针对多线程并发下载问题,常见有2种解决方式:

  • 使用GCD中的信号量机制dispatch_semaphore来控制线程的。
  • 基于NSOperationNSOperationQueue来解决。

先来说说基于GCD信号量的弊端:

  1. 自己控制操作的数量。
  2. 很难设置某些操作之间的先后顺序。
  3. 同时不便于封装,需要自己管理线程周期。

NSOpration的好处:

  1. 可以设置最大并发数,不用自己管理。
  2. 可以设置依赖,管理操作的先后顺序。
  3. 面向对象,便于封装。不用管理线程的生命周期。

好,废话不多说,直接说实现,代码在这个demo中。

相关文章

网友评论

      本文标题:基于NSOperation的多线程下载

      本文链接:https://www.haomeiwen.com/subject/uhvinctx.html