私は、スレッドAがスレッドBがタスクを完了するのを待ち、スレッドBがそのタスクを完了すると、スレッドAにnotfiy()を実行して続行するプログラムを開発しました。以下はコードです。
class ThreadA {
public static void main(String [] args) {
ThreadB b = new ThreadB();
b.start();
synchronized(b) {
try {
System.out.println("Waiting for b to complete...");
b.wait();
} catch (InterruptedException e) {}
System.out.println("Total is: " + b.totals);
}
}
}
class ThreadB extends Thread {
public int totals;
public void run() {
synchronized(this) { //instance level lock
for(int i=0;i<100;i++) {
totals += i;
}
notify();
}
}
}
ここで、スレッドbをさらに3つのスレッドが待機しているとしましょう。スレッドAが待機しているのと同じように、さらに3つのスレッドを生成する方法を教えてください。