Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jsoup连接在多个线程上拆分_Java_Multithreading_Jsoup - Fatal编程技术网

Java Jsoup连接在多个线程上拆分

Java Jsoup连接在多个线程上拆分,java,multithreading,jsoup,Java,Multithreading,Jsoup,我试图在Jsoup中创建简单的爬虫程序。它在网站的源代码中找到所有链接,并最终跟踪它们,再次在每个源代码中搜索新链接,以此类推 问题是,经过两次重定向之后,计算时间相当长 这是它工作原理的伪代码: function follow_links(String[] links) { for(int i=0; i<=links.amount-1; i++) { Document doc = Jsoup.connect(links[i]); String[] newlinks =

我试图在Jsoup中创建简单的爬虫程序。它在网站的源代码中找到所有链接,并最终跟踪它们,再次在每个源代码中搜索新链接,以此类推

问题是,经过两次重定向之后,计算时间相当长

这是它工作原理的伪代码:

function follow_links(String[] links)
{

 for(int i=0; i<=links.amount-1; i++)
 {
   Document doc = Jsoup.connect(links[i]);
   String[] newlinks = new String[max];
   newlinks = parse(doc);
   ...       
 }

}
函数跟踪链接(字符串[]链接)
{

对于(int i=0;i我不这么认为。如果你的应用程序通过1000个链接,你将创建1000个线程,这将破坏你的整个应用程序性能。查看此项了解更多信息

最好保留一个线程池,并将“搜索”作为任务提交。CompletableFuture with ExecutorServices似乎是解决方案

这里是Stack上的主题,一个家伙试图在他的爬虫中实现相同的想法