一、前言

本篇是对 CountDownLoatch 工具类的实际场景运用的简单补充,通过 CountDownLoatch 实现多线程下载器核心功能。

二、实现原理

使用多线程对目标资源进行分块下载(设置 Range 请求头)提升下载效率,当所有分块下载完成后,再将所有分块文件按顺序合并成完整的目标文件。

三、实现方案

  • Swing 实现用户交互
  • URLConnection 实现文件请求与下载
  • ExecutorService 实现多线程实例维护
  • CountDownLoatch 实现线程等待以及最终的文件合并

以下为程序运行效果图:

四、源码

downloader

五、参考资料

HTTP Range 请求总结