0

ここには、スレッド/Runnable オブジェクトとして使用されるクラスがあります。下の 2 番目のクラス (UseSearch) には、Search クラスの 2 つのインスタンスをインスタンス化し、それらを使用して 2 つのスレッドを作成するメイン メソッドがあります。ご覧のとおり、run メソッドは、渡された方向に応じてループを実行する add メソッドを呼び出します。スレッドの 1 つが、他のスレッドが終了したときに、他のスレッドのループの反復を停止させるメカニズムを探しています。その繰り返しを実行しています。ヘルプ/アドバイスをいただければ幸いです。同様の例を見たことがありますが、複雑すぎて理解できません。-Jevison7x

public class Search implements Runnable
{
    int sum;

    boolean direction;

    String name;

    public Search(String n, boolean positive)
    {
         this.direction = positive;
         this.name = n;
    }

    void add()
    {
         if(direction == true)
         {
              for(int i = 0; i < 100; i++)
              {
                 sum += 1;
                 System.out.println(name+" has "+sum);
              }
         }
         else
         {
              for(int i = 0; i < 100; i++)
              {
                  sum -= 1;
                  System.out.println(name+" has "+sum);
              }
         }
  }

  public void run()
  {
    add();
  }
}

public class UseSearch
{
    public static void main(String[] args)
    {
        Search s1 = new Search("bob", true);
        Search s2 = new Search("dan", false);

        Thread t1 = new Thread(s1);
        Thread t2 = new Thread(s2);

        t1.start();
        t2.start();
    }
}
4

2 に答える 2

0

長い答えの短い... Threads クラス全体の変数を作成して、各スレッドが他のスレッドにアクセスできるようにします。

Thread t1, t2;

public static void main(String[] args){
    t1 = new Thread(){
        public void run(){
            t2.interrupt();
        }
    };

    t2=new Thread(){
        public void run(){
            t1.interrupt();
        }
    };
}
于 2013-06-09T04:05:21.653 に答える