我正在创建一个测试工具来测试Web服务的性能。现在,我希望在100个用户点击此Web服务时测试我的工具的性能
在Current中,我创建了一个加热的线程,并在日志中显示请求 - 响应详细信息。但我需要创建100个并行工作的线程,并向我显示100个线程的请求 - 响应
我的问题是如何创建100 parallel thread's
。在这里我尝试创建100个线程并行,但是当我运行此程序时,它不会调用run()
方法。
这是我的代码。
public class Main implements Runnable
{
int counter= 0;
public static void main(String args[]) throws Throwable
{
Thread t[]=new Thread[100];
for (int j=0; j<100;j++)
{
t[j]=new Thread();
t[j].start();
}
}
public void run()
{
try {
System.out.println("thread "
+Thread.currentThread().getName()+" step "+counter++);
}
catch (Throwable t) {
t.printStackTrace();
}
}
}
给我一些提示或参考。我不明白我错在哪里 在此先感谢。
答案 0 :(得分:5)
您没有实例化您的线程类 - 恰好是Main。
你的课应该是:
public class Main extends Thread {
int counter= 0;
public static void main(String args[]) throws Throwable {
Main t[] = new Main[100];
for (int j=0; j<100;j++) {
t[j] = new Main();
t[j].start();
}
}
public void run() {
try {
System.out.println("thread " + Thread.currentThread().getName()+" step "+counter++);
}
catch (Throwable t) {
t.printStackTrace();
}
}
}
答案 1 :(得分:4)
你可能意味着t[j]=new Thread(new Main())
答案 2 :(得分:3)
我建议你使用ExecutorService来管理你的线程,你可以将Runnable作为任务提交给这个池。
答案 3 :(得分:1)
我建议您使用Apache JMeter进行Web服务测试。它已经具有请求/响应的并行线程功能。
反正: 要创建新的线程使用构造函数:
Thread(Runnable target)
正如你所看到的,线程实现了runnable,另一种方式就是覆盖run方法。
public class Thread implements Runnable