Использование многопоточности Java - PullRequest
0 голосов
/ 03 июля 2019

Я извлекаю из него тысячи URL-адресов и разбора таблиц, используя parseDocument(doc). Для анализа всех таблиц потребуются часы, поэтому я хотел использовать потоки для одновременного анализа многих из них, но не знаю, как это сделать.

Приведенный ниже код является циклом for, в котором мне нужно использовать потоки:

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

1 Ответ

0 голосов
/ 03 июля 2019
    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 (). Поток требует void запуска, где будут выполняться реальные операции, потому что он использует нечто, называемое «runnable», который является интерфейсом, которому нужен этот метод Run. Здесь вы бы проанализировали документ. Наконец, мы запускаем поток с помощью вызова t.start ().

...