0

Web サービスのパフォーマンスをテストする 1 つのテスト ツールを作成しています。ここで、100 人のユーザーがこの Web サービスにアクセスしたときのツールのパフォーマンスをテストしたいと考えています。
Current では、リクエストとレスポンスの詳細をログに記録して表示する 1 つのスレッドを作成します。しかし、並列に動作する 100 個のスレッドを作成し、100 個のスレッドの要求応答を表示する必要があります。
私の質問は、作成方法100 parallel thread'sです。run()ここでは、100 スレッド並列を作成しようとしていますが、このプログラムを実行すると、メソッド が呼び出されません。

これが私のコードです。

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

スレッドクラスをインスタンス化していません-これはたまたまメインです。

クラスは次のようになります。

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

Web サービスのテスト目的で Apache JMeter を使用することをお勧めします。要求/応答用の並列スレッド機能が既にあります。

とにかく:新しいスレッドを作成するには、コンストラクターを使用します:

Thread(Runnable target) 

ご覧のとおり、スレッドは runnable を実装しています。もう 1 つの方法は、run メソッドをオーバーライドすることです。

public class Thread implements Runnable
于 2012-10-02T07:22:35.263 に答える