加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

使用join()和wait()线程java

发布时间:2020-12-12 07:48:45 所属栏目:MsSql教程 来源:网络整理
导读:我需要制作一系列线程.他们需要按照以下顺序开始: A然后B然后是C,最后是D. D完成后,C可以完成B,然后是A. 在这种情况下,最好使用join()线程还是wait()?为什么? 我的线程需要启动并打印消息Hello我是线程a / b / c / d,当它们完成时,它们需要打印我已完成a /
我需要制作一系列线程.他们需要按照以下顺序开始:

A然后B然后是C,最后是D.

D完成后,C可以完成B,然后是A.

在这种情况下,最好使用join()线程还是wait()?为什么?

我的线程需要启动并打印消息Hello我是线程a / b / c / d,当它们完成时,它们需要打印我已完成a / b / c / d.

解决方法

由于您正在等待“其他”线程完成(即完成执行),因此join()将是更好的选择.

join()的javadoc简单地说:等待这个线程死掉.

这个机制相对简单:

@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(虽然在实践中很少).

希望这有帮助,祝你好运.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读