当前位置: 首页 > 面试题库 >

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

罗俭
2023-03-14
问题内容

我需要使线程顺序。他们需要按以下顺序启动:

A then B then C and finally D.

当D完成时,C可以完成,然后B,然后是A。

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

我的线程需要启动并打印消息Hello I'm thread a/b/c/d,完成后需要打印I'm finished a/b/c/d


问题答案:

由于您正在等待“其他”线程完成(即完成执行),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指向bb指向cc指向dd不指向任何对象otherThread(它为null)。

该语句otherThread.join()等待另一个线程完成。由于join()可以抛出,所以它被包裹在一个循环中InterruptedException(尽管很少见)。

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



 类似资料:
  • 问题内容: 我正在尝试学习如何在Java中暂停和恢复线程。我使用的是有2个按钮“开始”和“停止”。 线程的运行方法: 现在,每当我尝试暂停或恢复线程时,都会引发异常: 笔记: 如果我使用不推荐使用的方法和,则先前的代码可以完美运行,但是文档指出使用和而不是同步。我尝试将单词添加到方法中,但仍会引发异常。 有人可以解释 为什么 这不起作用以及如何解决同步问题吗?很少有解释要点真的有多大帮助;) 问题

  • Node RED join-wait This Node-RED module waits for incoming messages from different input paths to arrive within a fixed time window. Node-RED is a tool for wiring together hardware devices, APIs and o

  • 在另一个主题中,和等Java解决方案中的thread.currentThread().join()的用户被认为是一些评论者可以接受的方法,但有一个评论者说,应该使用一些有用的方法来完成,这些方法可以使线程保持活动,而不是仅仅使它Hibernate。 我理解他的观点,但是如果没有什么事情可以使线程保持活动状态,就像这个例子,我订阅了一个“Topic like”以异步获取消息呢? 使用Thread.C

  • 主要内容:1 什么是Java join()方法,2 Java join()方法语法,3 Java join()方法例子1,4 Java join()方法例子21 什么是Java join()方法 Java join() 方法表示等待线程死亡。换句话说,它导致当前正在运行的线程停止执行,直到与之连接的线程完成其任务为止。 2 Java join()方法语法 3 Java join()方法例子1 输出结果为: 如上例所示,当t1完成其任务时,t2和t3开始执行。 4 Java join()方法例子2

  • 本文向大家介绍浅谈java线程join方法使用方法,包括了浅谈java线程join方法使用方法的使用技巧和注意事项,需要的朋友参考一下 本博客简介介绍一下java线程的join方法,join方法是实现线程同步,可以将原本并行执行的多线程方法变成串行执行的 如图所示代码,是并行执行的 打印出来的信息,都是这样的 执行时间:0 线程1:1 线程2:1 线程2:2 线程2:3 线程2:4 线程2:5 线

  • 本文向大家介绍浅谈线程通信wait,notify作用,包括了浅谈线程通信wait,notify作用的使用技巧和注意事项,需要的朋友参考一下 线程通信的目的是为了能够让线程之间相互发送信号。另外,线程通信还能够使得线程等待其它线程的信号,比如,线程B可以等待线程A的信号,这个信号可以是线程A已经处理完成的信号 Wait()方法 -中断方法的执行,使本线程等待,暂时让出cpu的使用权,并允许其他线程使