我正在尝试学习如何在 Java 中使用多线程。我有一个 main 和两个扩展 Thread、A 和 B 的类。我希望 main 启动 A,这对 B 进行多次调用。一旦 A 完成,我希望 B 向 main 发送一些东西。
主程序创建两个线程,一个 A 和一个 B,然后启动两个线程。A 做某事,然后将结果传递给 B。然后 main 收集 B 的答案并做其他事情。我不知道如何将 B 中的总数返回到 main 中。
我也不确定如何实例化这两个类(线程),然后给 A 一个 B 的引用,因为 Java 使用按值传递。有人可以给我一些指示。
public static void main(String[] args)
{
B b = new B();
A a = new A(100, b);
B.start();
A.start();
A.join(); // Waiting for A to die
// Here I want to get a total from B, but I'm not sure how to go about doing that
}
public class A extends Thread
{
private int start;
// Some reference to B
B b;
public A (int n, B b) {
int start = n;
this.b = b;
}
public void run() {
for (int i = 0; i < n; i++) {
b.add(i);
}
}
}
public class B extends Thread
{
private int total;
public B () {
total = 0;
}
public void add(int i) {
total += i;
}
}