由于您正在等待“其他”线程完成(即完成执行),
join()因此是更好的选择。
的javadoc
join()简单地说: 等待该线程死亡。
然后,该机制相对简单:
@Override public void run() { System.out.println("Hello I'm thread " + getName()); if (otherThread != null) { while (otherThread.isAlive()) { try { otherThread.join(); } catch (InterruptedException e) { // ignore } } } System.out.println("I'm finished " + getName()); }
要说明:您需要参考
otherThread。因此,
a指向
b,
b指向
c,
c指向
d和
d不指向任何对象
otherThread(它为null)。
该语句
otherThread.join()等待另一个线程完成。由于
join()可以抛出,所以它被包裹在一个循环中
InterruptedException(尽管很少见)。
希望这有帮助,祝你好运。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)