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