Java下载器 - 下载多个文件

时间:2016-01-16 11:31:35

标签: java multithreading arraylist download

我创建了一个可以使用URL下载一个文件的Java程序,但是现在我希望它能够使用多个线程下载多个文件。我可以使用相同的方法并循环URL列表来获取文件吗?或者任何人都可以推荐一种方法来解决它?

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

void download(URL url){
    ...
}

void downloadAll(URL[] urls){
    for(URL url : urls){
        Thread t = new Thread(() -> download(url));
        t.start();
    }
}

编辑:
作为@LouisF。提到解决这个问题的推荐方法是Executors。因此,与使用Thread s的简单示例不同,这将更合适,但也需要更复杂的方法:

ExecutorService service = Executors.newChachedThreadPool();
for(URL url : urls)
    service.submit(() -> download(url);