增加爬虫程序中的线程数

This is the code taken from http://code.google.com/p/crawler4j/ and the name of this file is MyCrawler.java public class MyCrawler extends WebCrawler { Pattern filters = Pattern.compile(".*(\\.(css|js|bmp|gif|jpe?g" + "|png|tiff?|mid|mp2|mp3|mp4" + "|wav|avi|mov|mpeg|ram|m4v|pdf" + "|rm|smil|wmv|swf|wma|zip|rar|gz))$"); /* * You should implement this function to specify * whether the given URL should be visited or not. */ public boolean shouldVisit(WebURL url) { String href = url.getURL().toLowerCase(); if (filters.matcher(href).matches()) { return false; } if (href.startsWith("http://www.xyz.us.edu/")) { return true; } return false; } /* * This function is called when a page is fetched * and ready to be processed by your program */ public void visit(Page page) { int docid = page.getWebURL().getDocid(); String url = page.getWebURL().getURL(); String text = page.getText(); List links = page.getURLs(); } } 

这是调用MyCrawler的Controller.java的代码。

 public class Controller { public static void main(String[] args) throws Exception { CrawlController controller = new CrawlController("/data/crawl/root"); controller.addSeed("http://www.xyz.us.edu/"); controller.start(MyCrawler.class, 10); } } 

所以我只想确定这行在controller.java文件中的含义

 controller.start(MyCrawler.class, 10); 

这里10的意思是什么..如果我们将这个10增加到20那么效果会是什么……任何建议都将受到赞赏……

该网站显示了CrawlController的来源。

从10增加到20增加了爬虫的数量(每个都在他们自己的线程中) – 研究该代码将告诉你这会产生什么影响。

鉴于您在post上添加的名称,您似乎已经知道它的作用 – 它设置了爬虫线程的数量。 至于它会产生什么影响……这在很大程度上取决于每个线程等待I / O的时间 – 主要是网络,一个小磁盘,以及你有多少CPU和磁盘吞吐量。 当其中一个发生时,将发生峰值吞吐量:

  • 没有更多的CPU时间了
  • 没有更多的网络带宽
  • 没有更多的磁盘带宽

对于CPU,不要指望达到100% – 最大值为80%左右。