2016-05-19 9 views
1

Ich habe ein Programm, das HTML-Dokument aus der Liste der Websites eins nach dem anderen bekommen und dann analysieren kann.Jsoup Parsing - Parsing mehrere Links gleichzeitig

ArrayList<String> links = new ArrayList<>(); 

for(String link : links) { 
    try { 
     Document doc = Jsoup.connect(link).get(); 
     getInfo(doc); 
    }catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

Problem ist, dass es zu lange ist unter zu HTML-Dokumenten wie, site1 dann site2 und site3 zu bekommen ..

Meine Frage ist, ist es möglich zu machen, dass dieser Code zu 5 Links verbinden würde gleichzeitig und dann analysieren sie statt eins nach dem anderen.

+1

Es ist möglich, indem Sie 5 Threads erstellen und gleichzeitig ausführen. Durchsuchen Sie google (oder stackoverflow) nach Nebenläufigkeit in Java. – TDG

Antwort

1

Ja.

Wahrscheinlich die einfachste ein mit Java8 ist ein paralleler Strom gibt es

ArrayList<String> links = new ArrayList<>(); 

links.parallelStream().forEach(link -> { 
    try { 
    Document doc = Jsoup.connect(link).get(); 
    getInfo(doc); 
    }catch (IOException e) { 
    e.printStackTrace(); 
    } 
}); 

Natürlich nutzen viele alternative Möglichkeiten, einschließlich Fäden, Testamentsvollstrecker Pools, etc. - nur die Verwendung von Google Suche nach Gleichzeitigkeit, Themen und so weiter .