当前位置: 代码迷 >> J2SE >> JAVA-线程-下载文件-求解,该怎么解决
  详细解决方案

JAVA-线程-下载文件-求解,该怎么解决

热度:494   发布时间:2016-04-23 19:53:27.0
JAVA--线程--下载文件--求解
本帖最后由 u010034154 于 2015-04-06 11:38:36 编辑
    网上服务器的文件1000个,文件的地址我都放到一个集合里边了,想用java遍历集合并下载他们,但是考虑到会出现这个情况:当某个文件下载的时候网速特别不给力,一直下载不下来,估计就会阻塞了。假如把集合分五份 ,然后我开5个线程,五个线程分别下载文件,每个线程在下载一个文件结束后就下载另一个文件,如果某个文件阻塞了则自动跳过它下载下一个文件
    红色字体那一部分我不知道怎么去写,还望大家给我个思路。谢谢
------解决思路----------------------
1、 使用 Executor 并发线程同时操作 5 个文件, 使用 IO 下载文件

  final ExecutorService exec = Executors.newFixedThreadPool(5);

2、如果出现阻塞了, 你在 Executor 时, 通过 Future 收集每个线程的计算结果, 如果超过  20 秒或者多少秒没有返回的计算结果, 则 cancel  这个线程

   future.get(2000);

    get(long timeout, TimeUnit unit) 
          如有必要,最多等待为使计算完成所给定的时间之后,获取其结果(如果结果可用)。
  相关解决方案