Hallo,
Ich schreibe gerade einen kleinen Netzwerkscanner und um das ganze zu beschleunigen lagere ich verschiedene Adressbereiche (in 5er Schritten) in Threads um (z.B. werden im 1. Tread die Adressen xxx.1 bis xxx.5 gescannt). Die Ergebnisse speichere ich in einem Array, den ich, nachdem alle Threads beendet sind ausgeben möchte
Dies alles klappt wunderbar, mein Problem ist nur den Zeitpunkt abzuwarten, wo wirklich alle Threads beendet sind. Ich hab bereits versucht mit
diesen Zeitpunkt abzuwarten, das hat jedoch nicht funktioniert (Es gab scheinbar einen kurzen Moment, indem die "älteren Threads" schon fertig, die "letzten Threads" aber noch garnicht gestartet sind)
Gibt es nun irgendeinen Weg abzuwarten, bis wirklich alle Threads beendet sind?
Vielen Dank schon mal
Ich schreibe gerade einen kleinen Netzwerkscanner und um das ganze zu beschleunigen lagere ich verschiedene Adressbereiche (in 5er Schritten) in Threads um (z.B. werden im 1. Tread die Adressen xxx.1 bis xxx.5 gescannt). Die Ergebnisse speichere ich in einem Array, den ich, nachdem alle Threads beendet sind ausgeben möchte
Dies alles klappt wunderbar, mein Problem ist nur den Zeitpunkt abzuwarten, wo wirklich alle Threads beendet sind. Ich hab bereits versucht mit
Code:
while(scan.isAlive() == true)
Gibt es nun irgendeinen Weg abzuwarten, bis wirklich alle Threads beendet sind?
Vielen Dank schon mal
Java:
//Main-Klasse
public static void main(String[] args) {
for(int i = 0; i < 51; i++){
startV = 5 * i;
Scan scan = new Scan(startV);
scan.start();
}
}
Java:
//Scan-Klasse
public class Scan extends Thread {
private int startV;
public Scan(int startV){
this.startV = startV;
}
public void run() {
for (int i = startV + 1; i <= startV + 5; i++ ){
//hier wird der Scan im Intervall startV bis startV+5 durchgeführt
}
}
}