2 つのスレッド J1 と J2 があります。join()
メソッドを使用せずに、J1 が実行を完了した後にのみスレッド J2 が実行されるようにするにはどうすればよいでしょうか。
3 に答える
1
これは、Thread.join が行っていることに非常に近いと思います。
public class Test1 {
public static void main(String[] args) throws Exception {
Thread t = new Thread();
synchronized (t) {
t.start();
while (t.isAlive()) {
t.wait();
}
}
}
}
魔法に注意してください - 何かが t.wait() を起動します - これは、JVM が終了時に Thread オブジェクトに通知するためです
于 2013-05-12T15:43:03.280 に答える
0
これを達成する別の方法は、 ロックを使用することです
class X {
private final ReentrantLock lock = new ReentrantLock();
// ...
public void m() {
lock.lock(); // block until condition holds
try {
// ... method body
} finally {
lock.unlock()
}
}
}
于 2013-05-12T16:34:30.507 に答える