我正在尝试编写一个压力测试程序来抨击我们的网络服务器。我正在尝试使用线程来模拟多个人打服务器。但是,我遇到的问题是 99.9% 的时间使用 1 个线程。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 对象,或者这是由于我自己对导致此问题的多线程编程的无知/缺乏经验造成的。
提前感谢你们可以给我的任何帮助。