0

我正在创建一个测试工具来测试 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();
   }
 }
}

给我一些提示或参考。我不明白我错在哪里。
提前致谢。

4

4 回答 4

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();
        }
    }
}
于 2012-10-02T05:49:59.613 回答
4

你可能是说t[j]=new Thread(new Main())

于 2012-10-02T05:52:50.347 回答
3

我建议您使用ExecutorService来管理您的线程,并且您可以将 Runnable 作为任务提交到该池。

于 2012-10-02T05:53:49.320 回答
1

我建议您使用 Apache JMeter 进行 Web 服务测试。它已经具有请求/响应的并行线程功能。

无论如何:要创建新线程,请使用构造函数:

Thread(Runnable target) 

如您所见,线程实现了runnable,另一种方式就是覆盖run方法。

public class Thread implements Runnable
于 2012-10-02T07:22:35.263 回答