`
geeksun
  • 浏览: 967837 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Thread.join用法

 
阅读更多
Thread.join(): 用来让主线程等待子线程执行完毕再执行下面的操作。
顾名思义,join会让子线程加入MainThread.
 
适用场景:
主线程需要等子线程执行完毕后,再执行下一步操作。
比如:主线程需要统计子线程的执行时间,或需要统计子线程的执行结果等。
 
join() 的作用是等待该线程终止,即该线程存活的时候一直等待,等待线程死亡,好残忍 。。
JDK的源码 join()方法在线程isAlive()为true的时候一直轮询,直到变为die状态。
 
所以join()之后的代码在子线程未执行完之前,不会向下执行。
相当于主线程阻塞,等待子线程执行完后再执行主线程。
 
类似家长等待孩子放学,孩子没放学前一直在门口等待,放学后才带孩子回家。
 
和 CountDownLanch 类似,都可以让子线程执行完后再执行主线程。
分享到:
评论

相关推荐

    C#多线程之Thread中Thread.Join()函数用法分析

    本文实例讲述了C#多线程之Thread中Thread.Join()函数用法。分享给大家供大家参考。具体分析如下: Thread.Join()在MSDN中的解释:Blocks the calling thread until a thread terminates 当NewThread调用Join方法的...

    java 中Thread.join()的使用方法

    `Thread.join()`方法可以帮助开发者实现这种顺序,同时避免了使用更复杂的同步机制如`synchronized`关键字或`Lock`接口。 需要注意的是,频繁使用`join()`可能会导致程序的执行效率下降,因为它会导致线程的阻塞。...

    C#多线程之Thread中Thread.IsAlive属性用法分析

    在下面的示例代码中,我们创建了一个新的线程`oThread`,并使用`ThreadStart`委托传递一个方法`Back.Start`作为线程的入口点。接着,通过调用`oThread.Start()`启动线程。然而,需要注意的是,`Start()`方法的调用...

    Java中Thread.join()的使用方法

    Java 中 Thread.join() 的使用方法 Thread.join() 是 Java 中的一个重要方法,该方法允许一个线程等待另一个线程的执行完成。下面我们将详细介绍 Thread.join() 的使用方法、源码分析和示例代码。 1. join() 的...

    Thread.jone

    使用方法如下: ```java Thread childThread = new Thread(() -> { // 子线程的任务 }); childThread.start(); try { childThread.join(); // 主线程等待子线程结束 } catch (InterruptedException e) { e....

    浅谈Java线程Thread.join方法解析

    可以看到,join方法中使用了wait方法来实现等待,但是在这里没有看到哪里调用notify或者notifyAll方法。如果没有调用的话,那调用方线程会一直等待下去,那是哪里调用了唤醒它的方法呢? 通过查证得知,原来在线程...

    c++11中关于std::thread的join的详解

    C++11中关于std::thread的join详解 C++11引入了std::thread库,提供了对多线程编程的支持...在使用std::thread库时,我们必须了解join操作的使用和重要性。同时,我们也可以使用局部对象的机制来确保join操作的调用。

    Java线程中wait,await,sleep,yield,join用法总结.pdf

    以上就是对Java线程中wait、await、sleep、yield、join用法的总结。这些方法在实际开发中,对于控制多线程运行的时序和协调非常关键。理解这些方法的正确使用方式是掌握Java并发编程的基础。同时,使用时需特别注意...

    JavaThread.pdf

    - Thread.dumpStack()打印当前线程的堆栈跟踪,join()方法等待线程终止。 9. **监控和调试** - Thread.currentThread()获取当前线程的引用,Thread.isAlive()判断线程是否存活,Thread.isDaemon()检查线程是否是...

    java基本教程之join方法详解 java多线程教程

    以下是一个简单的`join()`使用示例,展示了如何在一个线程中调用另一个线程的`join()`方法: ```java public class JoinTest { public static void main(String[] args) { try { Thread thread1 = new Thread(()...

    Java课件\thread.rar

    - **通过`Runnable`接口创建**:实现`Runnable`接口,定义`run()`方法,然后将`Runnable`对象作为参数传递给`Thread`类的构造函数,创建`Thread`对象并调用`start()`方法。 2. **线程状态** - 新建(New):线程...

    boost的Thread.lib(VC 6.0++)

    5. **线程Join和Detach**:`join`方法使调用线程等待指定线程结束,而`detach`则将线程与调用线程分离,让其独立运行。 6. **线程组管理**:`boost::thread_group`类可以管理一组线程,方便地启动、停止和等待所有...

    Java之Thread的join方法实例

    下面我们将深入探讨`Thread.join()`方法的工作原理、使用方法以及相关示例。 `Thread.join()`方法的基本语法如下: ```java public final void join() public final void join(long timeout) public final void ...

    java 携子之手 与子偕老(join)

    在实际应用中,join()方法通常配合Thread类的start()方法一起使用。start()方法用于启动新线程,而join()方法则用于确保当前线程等待该线程执行结束。例如: ```java Thread thread = new Thread(new Runnable() { ...

    C++_thread.zip

    也可以是joinable,需要调用`join()`或`detach()`方法来处理线程的生命周期。 7. **线程安全**:线程安全指的是在多线程环境下,代码可以正确运行而不会出现数据不一致或其他错误。编写线程安全的代码是多线程编程...

    javathread.part02.rar

    线程可以通过sleep()、wait()等方法进入阻塞状态,join()方法可以等待其他线程结束。当run()方法执行完毕或遇到未捕获的异常时,线程死亡。 线程同步是Java中解决多线程并发问题的关键,主要包括synchronized关键字...

    线程常用方法示例

    本示例着重讲解几个关键的线程方法,包括`Abort`,`Join`,`Sleep`,`Interrupt`以及`Start`,这些都是在实际开发中频繁使用的功能。 1. **Start方法**: `Thread.Start`方法用于启动新创建的线程。当你创建了一个...

    javathread.part05.rar

    Java提供了丰富的线程控制方法,如`start()`启动线程,`sleep()`使线程暂停一段时间,`join()`让当前线程等待指定线程结束,`yield()`让当前线程让出CPU执行权,以及`interrupt()`中断线程等。 Java还提供了同步...

    javathread.part104.rar

    以上只是部分Java线程编程的核心知识点,`javathread.part104.rar`中可能还会包含更多高级主题,如线程池的配置与优化、线程通信(例如`join()`, `Thread.sleep()`, `yield()`)以及并发工具类的深入探讨。...

Global site tag (gtag.js) - Google Analytics