首页 > 解决方案 > 使用多线程 Java

问题描述

我正在使用parseDocument(doc). 解析所有表需要几个小时,所以我想使用线程同时解析很多表,但不知道该怎么做。

下面的代码是我需要在其上使用线程的 for 循环:

for(int i = 0; i < urlList.size(); i++) {
    Document doc = Jsoup.connect(urlList.get(i)).get();
    reader.add(parseDocument(doc));
}

标签: javamultithreadingjsoup

解决方案


    for(int i = 0; i < urlList.size(); i++) {
         Thread t = new Thread(new Runnable() { 
               public void run() { 
                  try {
                     //parsedocument( urlList.get(i))           
                   } catch (Exception e) {   //Catching exeptions
                       e.printStackTrace();
                   }
              }
          });
          t.start();

     }

我们创建了一个可以使用的名为 't' 的线程变量。例如,可以使用 .Join() 等待它完成。一个线程需要一个 run void 来执行实际操作,这是因为它使用了一个叫做“runnable”的东西,它是一个需要 Run 方法的接口。在这里,您将解析文档。最后,我们通过调用 t.start() 来启动线程。


推荐阅读