你的位置:首页 > 软件开发 > 操作系统 > AsyncTask实现多线程断点续传

AsyncTask实现多线程断点续传

发布时间:2015-10-13 21:00:18
前面一篇博客《AsyncTask实现断点续传》讲解了如何实现单线程下的断点续传,也就是一个文件只有一个线程进行下载。  对于大文件而言,使用多线程下载就会比单线程下载要快一些。多线程下载相比单线程下载要稍微复杂一点,本博文将详细讲解如何使用AsyncTask来实现多线程的 ...

  前面一篇博客《AsyncTask实现断点续传》讲解了如何实现单线程下的断点续传,也就是一个文件只有一个线程进行下载。

    对于大文件而言,使用多线程下载就会比单线程下载要快一些。多线程下载相比单线程下载要稍微复杂一点,本博文将详细讲解如何使用AsyncTask来实现多线程的断点续传下载。

一、实现原理

  多线程下载首先要通过每个文件总的下载线程数(我这里设定5个)来确定每个线程所负责下载的起止位置。

    long blockLength = mFileLength / DEFAULT_POOL_SIZE;    for (int i = 0; i < DEFAULT_POOL_SIZE; i++) {      long beginPosition = i * blockLength;//每条线程下载的开始位置      long endPosition = (i + 1) * blockLength;//每条线程下载的结束位置      if (i == (DEFAULT_POOL_SIZE - 1)) {        endPosition = mFileLength;//如果整个文件的大小不为线程个数的整数倍,则最后一个线程的结束位置即为文件的总长度      }      ......    }

原标题:AsyncTask实现多线程断点续传

关键词:线程

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。