为什么80%的码农都做不了架构师?>>>   

线程是用来执行异步程序的,但有时想让待待线程执行线束再向下执行其它操作,就是想把线程变成同步执行的,这时就需要用到Thread的join()方法了。

例如下面的代码:

    public static void main(String[] args) {// TODO Auto-generated method stubThread t = new Thread(new Runnable() {@Overridepublic void run() {System.out.println("Wati 3 seconds.");for (int i = 1; i <= 3; i++) {System.out.println(i);try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}});t.start();System.out.println("Main thread End.");}

执行结果如下:

Main thread End.
Wati 3 seconds.
1
2
3

如果我想要让“Main thread End.”在最后打印,可在打印前调用t.join(),代码如下:

    public static void main(String[] args) {// TODO Auto-generated method stubThread t = new Thread(new Runnable() {@Overridepublic void run() {System.out.println("Wati 3 seconds.");for (int i = 1; i <= 3; i++) {System.out.println(i);try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}});t.start();try {t.join();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("Main thread End.");}

执行结果为:

Wati 3 seconds.
1
2
3
Main thread End.

转载于:https://my.oschina.net/haodut/blog/195395

Java基础-等待子线程结束相关推荐

  1. Java多线程之----主线程会等待子线程结束再结束么,怎么让主线程等待子线程结束呐?

    首先给出结论: 主线程和子线程之间没有谁先谁后结束这种关联,它们只是各自负责自己的线程任务,如果该线程的任务结束了,该线程自然会结束运行. talk is cheap,show me the code ...

  2. Java如何等待子线程执行结束

    参考:http://www.jiacheo.org/blog/262 工作中往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完后再把那段逻辑的处理结果进行汇总的产景, 这时候就需要使用线程了 ...

  3. c++主线程等待子线程结束_简单明了的 Python 多线程来了 | 原力计划

    作者 | 万里羊责编 | 王晓曼出品 | CSDN博客线程和进程计算机的核心是CPU,它承担了所有的计算任务,就像是一座工厂在时刻运行.如果工厂的资源有限,一次只能供一个车间来使用,也就是说当一个车间 ...

  4. 【多线程】学习记录七种主线程等待子线程结束之后在执行的方法

    最近遇到一个问题需要主线程等待所有的子线程结束,才能开始执行,统计所有的子线程执行结果,返回,网上翻阅各种资料,最后记录一下,找到七种方案 第一种:while循环 对于"等待所有的子线程结束 ...

  5. c++ 等待子线程结束_python主线程与子线程的结束顺序

    对于程序来说,如果主进程在子进程还未结束时就已经退出,那么Linux内核会将子进程的父进程ID改为1(也就是init进程),当子进程结束后会由init进程来回收该子进程. 主线程退出后子线程的状态依赖 ...

  6. VC++ 中主线程等待子线程结束的方法

    void WaitForThreadExit(void) {DWORD dwRet; //返回值MSG msg; int wait_count=4; //线程句柄有4个int nExitThreadC ...

  7. 【java基础】子线程任务发生异常,主线程事务如何回滚?

    文章目录 一.提出问题 二.主线程与子线程 三.线程池 四.异常的捕获 五.事务的回滚 一.提出问题 最近有一位朋友问了我这样一个问题,问题的截图如下: 这个问题问的相对比较笼统,我来稍微详细的描述下 ...

  8. c主线程如何等待子线程结束 linux_使用互斥量进行同步 - Linux C进程与多线程入门_Linux编程_Linux公社-Linux系统门户网站...

    互斥 简单地理解就是,一个线程进入工作区后,如果有其他线程想要进入工作区,它就会进入等待状态,要等待工作区内的线程结束后才可以进入. 基本函数 (1) pthread_mutex_init函数 原型: ...

  9. Java多线程协作CountDownLatch,主线程等待子线程结束

    CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 主要方法 public CountDownLatch(int count);构造方 ...

最新文章

  1. CodeArt SharePoint Permission Extension 1.0 beta publish
  2. TensorFlow之张量
  3. 低代码、无代码?深度解读硅谷新趋势
  4. 【FFmpeg】使用 FFmpeg 处理音视频格式转换流程 ( 解复用 | 解码 | 帧处理 | 编码 | 复用 )
  5. python,制作山东省的地图 热力图
  6. 51nod 1412 AVL数的种类(DP
  7. 亮相 LiveVideoStackCon 2021,网易云信解构自研大规模传输网 WE-CAN
  8. Doris FE配置参数(全面)
  9. bzoj 3027: [Ceoi2004]Sweet(母函数+组合数)
  10. win10下rdlc报表在vs(visual studio)中中文显示小方块的批量处理解决方法
  11. JDK安装配置环境变量以及配置完成后出现java命令能用但javac命令不能用 (JAVA_HOME失效)
  12. 如何设置CentOS7的时间与网络同步
  13. Idea内网配置仓库地址
  14. Android webView 无法加载微信公众号图片
  15. 论文记录-2017-A review of affective computing: From unimodal analysis to multimodal fusion
  16. Android Studio 作业 BMI 计算器
  17. oracle之concat()函数
  18. 如何用python写游戏脚本?
  19. 金融界神曲“金融科技”:度小满、中国平安等大神如何唱?
  20. 三、Unity2D游戏制作——角色制作

热门文章

  1. java socket datagramsocket_用DatagramSocket写的个渣渣聊天后台,求拍砖
  2. mysql中增加45天三小时_MySQL查询以45天为间隔添加天数并在新列中显示输出
  3. 逻辑设计中需要显式地使用IBUF以及OBUF类似的原语吗?
  4. 阿里好的开源项目有哪些(善用工具)
  5. Flink SQL 功能解密系列 —— 解决热点问题的大杀器MiniBatch
  6. 对spring 中IOC 的理解
  7. Genymotion 模拟器 VirtualBox
  8. AngularJs的UI组件ui-Bootstrap分享(六)——Tabs
  9. C++STL源代码学习(之slist篇)
  10. 【前端】2015阿里前端实习生在线笔试题