`
geeksun
  • 浏览: 953082 次
  • 性别: 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()的使用方法

    主要介绍了java 中Thread.join()的使用方法的相关资料,需要的朋友可以参考下

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

    主要介绍了Java中Thread.join()的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    多线程并发代码的IntelliJ IDEA中调试方法.docx

    在main()方法中启动两个线程,然后调用thread1.join()和thread2.join(),以使主线程在“线程1”和“线程2”都返回结果之前不会进一步执行。 最后将两个线程的计算结果相加,得到100! + 100000! 下面就让我们使用...

    Python多线程中阻塞(join)与锁(Lock)使用误区解析

    join的错误用法 Thread.join() 作用为阻塞主线程,即在子线程未返回的时候,主线程等待其返回然后再继续执行. join不能与start在循环里连用 以下为错误代码,代码创建了5个线程,然后用一个循环激活线程,激活之后令其...

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

    本文对java Thread中join()方法进行介绍,join()的作用是让“主线程”等待“子线程”结束之后才能继续运行,大家参考使用吧

    对python 多线程中的守护线程与join的用法详解

    thread.join():在子线程完成运行之前,该子线程的父线程(一般就是主线程)将一直存在,也就是被阻塞 实例: #!/usr/bin/python # encoding: utf-8 import threading from time import ctime,sleep def func1(): ...

    java核心知识点整理.pdf

    本地方法区(线程私有) ................................................................................................................ 23 2.2.4. 堆(Heap-线程共享)-运行时数据区 ...........................

    详解C++ thread用法总结

    C++11的标准类std::thread对线程进行了封装,定义了C++11标准中的一些表示线程的类、用于互斥访问的类与方法等。应用C++11中的std::thread便于多线程程序的移值。 std::thread类成员函数: (1)、get_id:获取线程ID...

    Python语言基础:线程同步.pptx

    为了使不同线程在使用统一共享内存时线程之间互不影响,需要使用 “Lock()”方法。 具体实现: import threading def job1(): global A, lock lock.acquire() #内存上锁 for i in range(10): A += 1 print('job1', A...

    Python中threading模块join函数用法实例分析

    本文实例讲述了Python中threading模块join函数用法。分享给大家供大家参考。具体分析如下: join的作用是众所周知的,阻塞进程直到线程执行完毕。通用的做法是我们启动一批线程,最后join这些线程结束,例如: for ...

    JAVA核心知识点整理(有效)

    2.2.3. 本地方法区(线程私有) ................................................................................................................ 23 2.2.4. 堆(Heap-线程共享)-运行时数据区 .....................

    多线程机制

    7、 浅析 Java Thread.join() : java多线程实现主线程等待所有子线程执行完毕 16 8、 线程运行中抛出异常的处理 19 9、 Callable 有返回值的线程 20 10、 Callable结合FutureTask的多线程使用(免打扰模式) 24

    NET多线程同步方法详解

    .NET多线程同步方法详解(一):... 除了以上的这些对象之外实现线程同步的还可以使用Thread.Join方法。这种方法比较简单,当你在第一个线程运行时想等待第二个线程执行结果,那么你可以让第二个线程Join进来就可以了。

    C++11/14 线程调用类对象和线程传参的方法

    线程调用类对象 在前面的示例中,我们为线程任务使用了通常的函数。实际上,我们可以使用任何可调用对象或者lambda函数,如下调用类对象的例子: #include #include <thread> class MyFunctor ... t.join();

    C++11/14 线程中使用Lambda函数的方法

    多线程中使用lambda 在本篇文章中,主要介绍lambda函数在多线程中的使用。 先从下面的例子开始吧: #include #include <thread> int main() { std::thread t([]() { std::cout << thread function\n; ...

    Python THREADING模块中的JOIN()方法深入理解

    join方法,如果一个线程或者一个函数在执行过程中要调用另外一个线程,并且待到其完成以后才能接着执行,那么在调用这个线程时可以使用被调用线程的join方法。 复制代码 代码如下: #-*- encoding: gb2312 -*- import...

    线程的基本概念、线程类、任务类、线程优先级、sleep()方法、yield()方法、join方法、interrupt()方法

    线程的基本概念、线程类...在Java中,可以使用Thread类的join()方法实现线程的合并。 线程的中断是指在一个线程中断另一个线程的执行。在Java中,可以使用Thread类的interrupt()方法实现线程的中断。(run方法执行完毕)

    thread-id:在Rust中获得唯一的线程ID

    ,标准库还没有公开执行此操作的方法,因此没有这种方法。 例子 use std :: thread; use thread_id; let handle = thread :: spawn ( move || { println! ( "spawned thread has id {}" , thread_id :: get ()); ...

Global site tag (gtag.js) - Google Analytics