SDWebImage框架重要的细节

本文深入探讨SDWebImage框架的细节,包括最大并发数、队列任务执行顺序、缓存文件命名规则、内存警告处理、缓存实现、图片类型判断及网络请求超时设置。分析了SDWebImageManager、SDWebImageDownloaderOperation、SDImageCache等关键类的实现,揭示了框架内部的工作原理。
摘要由CSDN通过智能技术生成

  我们在前面的笔记《SDWebImage的基本使用》中学习了该框架的一些基本知识,接下来,再看一下它内部的一些细节。

  1、最大并发数

  在学习NSOperation的时候,我们知道,线程的最大并发数默认值是-1,也就是不设限。那么,在SDWebImage中,线程的最大并发数是多少呢?

  在《多线程技术的综合应用》这篇笔记中,我们下载网络图片的代码,其实主要是分为两大部分:一部分是用来处理缓存的,另一部分是用来开子线程的。再来看SDWebImage框架,它其实也可以分为两部分,即一部分用来处理缓存,另一部分用来处理下载。

  在SDWebImage这个框架中,最重要的一个类是SDWebImageManager,它主要分管两大部分内容:SDImageCache(处理缓存文件)和SDWebImageDownloader(处理图片的下载)。而在处理下载图片的类中,真正执行任务的是SDWebImageDownloaderOperation。要查看SDWebImage中线程的最大并发数,就应该去处理下载的类中寻找。

  在SDWebImageDownloader这个类中,有一个属性maxConcurrentDownloads,就是用来表示最大下载量(也就是最大并发数)的。我们来看一下它的初始化代码:


maxConcurrentDownloads.png

  从代码上看,它是直接返回_downloadQueue.maxConcurrentOperationCount。那么,这个东西所代表的实际数值又是多少呢?继续在SDWebImageDownloader这个类中查看,你会看到一个- init方法,在这里,我们看到_downloadQueue.maxConcurrentOperationCount的数值是6。也就是说,在SDWebImage

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值