Java Jsoup解析-同时解析多个链接

Java Jsoup解析-同时解析多个链接,java,jsoup,Java,Jsoup,我有一个程序,可以从网站列表中一个接一个地获取html文档,然后对其进行解析 ArrayList<String> links = new ArrayList<>(); for(String link : links) { try { Document doc = Jsoup.connect(link).get(); getInfo(doc); }catch (IOException e) { e.print

我有一个程序,可以从网站列表中一个接一个地获取html文档,然后对其进行解析

ArrayList<String> links = new ArrayList<>();

for(String link : links) {
    try {
        Document doc = Jsoup.connect(link).get();
        getInfo(doc);
    }catch (IOException e) {
        e.printStackTrace();
    }
}
arraylistlinks=newarraylist();
用于(字符串链接:链接){
试一试{
Document doc=Jsoup.connect(link.get();
getInfo(doc);
}捕获(IOE异常){
e、 printStackTrace();
}
}
问题是,获取像site1、site2和site3这样的html文档需要很长时间

我的问题是,这段代码是否可以同时连接到5个链接,然后解析它们,而不是逐个解析。

是的

使用Java8最简单的方法可能是使用并行流

ArrayList<String> links = new ArrayList<>();

links.parallelStream().forEach(link -> {
  try {
    Document doc = Jsoup.connect(link).get();
    getInfo(doc);
  }catch (IOException e) {
    e.printStackTrace();
  }
});
arraylistlinks=newarraylist();
links.parallelStream().forEach(link->{
试一试{
Document doc=Jsoup.connect(link.get();
getInfo(doc);
}捕获(IOE异常){
e、 printStackTrace();
}
});

当然,还有很多替代方法,包括线程、执行器池等——只需使用google搜索并发、线程等等。

创建5个线程并并发运行它们是可能的。在google(或stackoverflow)上搜索Java中的并发性。