对比了一下SDWebImage,YYImage,AFN等图片下载管理。首先看一看SDWebImage-SDWebImageDownloader的部分源码!
Paste_Image.png
在代码可以看出来,SDWebImageDownloader默认是6个下载并发。
下面再看看YYImage的下载策略吧,
Paste_Image.png
YYImage 自己创建YYWebImageOperation,和AFN3.0之前的版本的网络队列很像。单线程+runloop 完成异步动作,关于runloop的介绍我这里就说了,有需要的可以在网上找别的文章看看吧。
AFN
Paste_Image.png
Paste_Image.png
Paste_Image.png
在上面的几段代码可以知道,AFN默认是4个并发,maximumActiveDownloads=4。和SD、YY不同的地方,AFN使用NSURLSessionDataTask完成网络请求,NSURLSessionDataTask默认是由系统控制并发,在AFN中作了特别的控制,最大并发下载数maximumActiveDownloads=4。而SD和YY都使用NSURLConnection完成网络请求,SD使用NSOperationQueue完成多线程下载,而YY采用单线程+RunLoop。
好了,下次有时间再聊聊缓存管理吧!
网友评论