Javaでマルチスレッドを使用する方法を学ぼうとしています。メインと、スレッド A と B を拡張する 2 つのクラスがあります。メインで A を開始し、B を複数回呼び出します。A が終了したら、B からメインに何かを送信します。
メインは、A と B の 2 つのスレッドを作成し、両方のスレッドを開始します。A が何かを実行すると、結果が B に渡されます。メインは B からの回答を収集し、別のことを実行します。B からメインに合計を戻す方法がわかりません。
また、2 つのクラス (スレッド) をインスタンス化する方法もわかりませんが、Java は値渡しを使用するため、A に B の参照を与えます。誰かが私にいくつかの指針を与えることができますか?
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;
}
}