我正在尝试编写一个压力测试程序来打击我们的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对象,或者这是由于我自己对多线程编程的无知/缺乏经验导致了这个问题。
提前感谢你们给我的任何帮助。