并发下载
一个页面下一般都有多张图片,要想提高浏览速度提升用户体验,那就只能用并发
分组并发
实现细节上也会存在一些问题,例如我最开始采用的方式,一共有35个图片。 分5个线程并发,每个线程获取7个图片。
每个线程获取list中中的部分图片
计算每组的线程数,group_count就是每个线程需要下载的图片
提高线程可靠性
如上图,如果某一个或者几个线程下载的图片老是没有过来,由于下载任务已经分配,
那这些线程可能就需要花费更多的时间,甚至于失败。
单个线程可靠性的保证,我们可以采用定时器和重试两个保护方法。
按需分配任务,不提前分配任务
获取任务
对于每个线程来说,并不需要提前平均分配,也可以各个线程之间协调,在一个队列里面去获取
执行困难的任务返回队列
某个线程完成不了的任务,退回给队列