特定の URL から HTTP ステータス コードを取得するための基本的なコードがいくつかあります。
URL url = new URL(args[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(10000);
connection.setReadTimeout(10000);
connection.setInstanceFollowRedirects(true);
int code = connection.getResponseCode();
connection.disconnect();
System.out.print(code);
System.exit(0);
明らかに、すべてが try/catch ブロック内にありますが、エラーで終了するだけです。コードは機能しているように見えたので、それに対して URL のリストを実行しました。プロセスを監視したところ、一部の URL で、同じ URL に対して約 10 個の Java インスタンスが生成されていることがわかりました。
つまり、次のように実行します。
java -jar HTTP.jar {URL}
htopを実行したときに、そのコマンドを約10回確認します。それらはスレッドではなく通常のプロセスのように見え、htop で「ユーザーランドスレッドを非表示」をオンにしています。何が起こっている?複数の要求が送信されていますか、それとも 1 つだけですか?