Ich habe diesen Code, um herauszufinden, wie von einer URL den Statuscode zu erhalten:Wie Datei als Eingabe geben und in mehreren Threads arbeiten?
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* @author Crunchify.com
*
*/
class j {
public static void main(String args[]) throws Exception {
String[] hostList = { "http://example.com", "http://example2.com","http://example3.com" };
for (int i = 0; i < hostList.length; i++) {
String url = hostList[i];
String status = getStatus(url);
System.out.println(url + "\t\tStatus:" + status);
}
}
public static String getStatus(String url) throws IOException {
String result = "";
try {
URL siteURL = new URL(url);
HttpURLConnection connection = (HttpURLConnection) siteURL
.openConnection();
connection.setRequestMethod("HEAD");
connection.connect();
int code = connection.getResponseCode();
result = Integer.toString(code);
} catch (Exception e) {
result = "->Red<-";
}
return result;
}
}
ich es für kleine Eingabe überprüft haben, es funktioniert gut. Aber ich habe Millionen von Domänen, die ich scannen muss. Ich habe eine Datei, die es enthält.
- Ich möchte wissen, wie ich Datei als Eingabe für diesen Code geben kann.
- Ich möchte den Code in mehreren Threads arbeiten. Sagen Sie, die Anzahl der Threads sollte mehr als 20000 betragen, damit meine Ausgabe schneller wird.
- Wie kann ich das in eine andere Datei schreiben?
Bitte helfen Sie mir. Wenn möglich würde ich gerne wissen, welche Bandwidth Savvy-Methode die gleiche Aufgabe erfüllt. Ich möchte den Code sowieso schneller machen. Wie kann ich diese Sache mit dem Code, den ich habe, machen? Java Version:
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
Sie könnten die Datei in eine Liste einlesen, Unterlisten erstellen und Threads erstellen, die jeweils an einer solchen Unterliste arbeiten. – Tim
Ich würde sagen, wenn Ihre Thread-Anzahl ist "20000" Sie werden feststellen, dass es langsam als eine Kugel in Klebstoff ist. – Kayaman
@Tim Können Sie mir bitte zeigen, wie das möglich ist. Ich bin in diesem Fall neu in Multi Thread. Weil ich mehr als 20000 Threads zur Zeit verwenden muss. Mein Code ist momentan nicht schneller. –