我有一个程序,能够从网站列表中一一获取html文档,然后解析它。
ArrayList<String> links = new ArrayList<>();
for(String link : links) {
try {
Document doc = Jsoup.connect(link).get();
getInfo(doc);
}catch (IOException e) {
e.printStackTrace();
}
}
问题是,获取像 site1、site2 和 site3 这样的 html 文档需要很长时间。
我的问题是,是否可以使这段代码同时连接到 5 个链接,然后解析它们,而不是逐一解析。
Yes.
Java8 最简单的可能就是使用并行流
ArrayList<String> links = new ArrayList<>();
links.parallelStream().forEach(link -> {
try {
Document doc = Jsoup.connect(link).get();
getInfo(doc);
}catch (IOException e) {
e.printStackTrace();
}
});
当然还有很多替代方法,包括线程、执行器池等 - 只需使用 google 搜索并发、线程等即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)