一、前言
本篇是对 CountDownLoatch 工具类的实际场景运用的简单补充,通过 CountDownLoatch 实现多线程下载器核心功能。
二、实现原理
使用多线程对目标资源进行分块下载(设置 Range 请求头)提升下载效率,当所有分块下载完成后,再将所有分块文件按顺序合并成完整的目标文件。
三、实现方案
- Swing 实现用户交互
- URLConnection 实现文件请求与下载
- ExecutorService 实现多线程实例维护
- CountDownLoatch 实现线程等待以及最终的文件合并
以下为程序运行效果图: