Web サーバーをバッシングするストレス テスト プログラムを作成しようとしています。スレッドを使用して、複数の人がサーバーにアクセスすることをシミュレートしようとしています。ただし、私が直面している問題は、1 つのスレッドを使用すると 99.9% の確率で動作することです。2 つのスレッドが 10 ~ 20% の確率で動作しているように見え、それ以上のスレッドは常に失敗しているようです。
テスト用のスレッドを生成しようとしている実行中のコードのスニペットを次に示します。
public static final MAX = 1; // (or 2, or 100 while testing)
<snip>
<snip>
String newParams = "{ bunch, of, test, parameters }";
Callable<String> call1;
ExecutorService pool = Executors.newFixedThreadPool(10);
Future<String> f1;
for (int i = 0; i < MAX; i++) {
// newParams = newParams + slight changes each iteration for each thread;
call1 = new HttpPostClass.HttpPost(url, newParams);
f1 = pool.submit(call1);
}
pool.shutdown();
ループ内で同じ Callable/Future オブジェクトを再利用しているためなのか、それともマルチスレッド プログラミングに関する自分の無知/経験不足が原因なのかはわかりません。
皆さんが私に与えることができる助けを前もって感謝します。