Hostnamenauflösung parallel (Thread) abarbeiten.
-
Hi, ich habe ein Programm geschrieben, welches mir für einen IP-Range (z.B. 217.72.0.1 - 217.72.14.254) die Hostnamen auflösst. Das klappt auch prima. Allerdings dauert es viel zu lange, weil jede Anfrage sequentiell abgearbeitet wird und somit die nächste Abfrage erst beginnt, wenn die vorige beendet ist.
Deswgen habe ich mir gedacht, dass ich gleich mehrere Anfragen parallel mit Threads starten könnte.
Ich habe einen Thread für die Namensauflösung einer IP gebaut. Wenn ich jetzt mehrere solche Threads parallel starte, dann liefern manche von ihnen - wie erwartet - unsinnige Ergebnisse zurück. Unzwar deshalb, weil ich die Namensauflöung bisher in etwa so mache (verkürzter Ausschnitt):// InetAdress hat leider keinen public Konstruktor InetAddress iPAsInetAddress = InetAddress.getByAddress(iPAsByteArr); // ipAsByteArr ist vom Typ byte[4] String hostName = iPAsInetAddress.getHostName();
InetAddress hält ihre Daten anscheinend teilweise statisch, so dass bei mehreren parallelen Anfragen die IP überschrieben wird.
Meine Frage ist nun:
Weiss jmd. welche andere API-Klasse für meine Zwecke günstig wäre oder wie ich das Problem anderweitig beheben könnte?