我在这里有一个类将用作线程/可运行对象,下面的第二个类(UseSearch)有一个 main 方法,它实例化 Search 类的两个实例并使用它们创建两个线程。如您所见,run 方法根据传入的方向调用运行循环的 add 方法。我正在寻找一种机制,该机制将导致一个线程在另一个线程完成时停止另一个线程的循环迭代运行它的迭代。任何帮助/建议将不胜感激。我看过一个类似的例子,但它对我来说太复杂了,无法理解。- 杰维森7x
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();
}
}