ここには、スレッド/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();
}
}