1.单线程开始并执行完毕
当线程开始后,需要用到join的方法
不废话直接贴代码

   public static void main(String args[]) {long begin = System.currentTimeMillis();System.out.println(begin);Thread thread = new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(1000L);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("111");}});try {thread.start();thread.join();} catch (InterruptedException e) {e.printStackTrace();}long end = System.currentTimeMillis();System.out.println(end-begin);System.out.println("执行完毕");}

运行结果:

1502091332017
111
1002
执行完毕

现在我们来看一下join这个方法

    /*** Waits for this thread to die.** <p> An invocation of this method behaves in exactly the same* way as the invocation** <blockquote>* {@linkplain #join(long) join}{@code (0)}* </blockquote>** @throws  InterruptedException*          if any thread has interrupted the current thread. The*          <i>interrupted status</i> of the current thread is*          cleared when this exception is thrown.*/public final void join() throws InterruptedException {join(0);}翻译为中文大意就是,等待线程执行完毕!

2.等待线程池执行完毕
等待线程池执行完毕我们需要用到
CountDownLatch这个类
且看代码:

    public static void main(String args[]) throws InterruptedException {final CountDownLatch count = new CountDownLatch(3);ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);try {long begin = System.currentTimeMillis();System.out.println(begin);fixedThreadPool.execute(new Runnable() {@Overridepublic void run() {try {Thread.sleep(1000L);count.countDown();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("111");}});fixedThreadPool.execute(new Runnable() {@Overridepublic void run() {try {Thread.sleep(2000L);count.countDown();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("222");}});fixedThreadPool.execute(new Runnable() {@Overridepublic void run() {try {Thread.sleep(3000L);count.countDown();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("333");}});count.await();long end = System.currentTimeMillis();System.out.println(end-begin);System.out.println("执行完毕");} finally {fixedThreadPool.shutdown();}}

最后一定要记得线程池关闭, 要不会出大问题的
运行结果:

1502091739441
111
222
333
3002
执行完毕

java 等待线程/线程池执行完毕相关推荐

  1. python 判断线程是否执行完毕_判断线程池中的线程是否全部执行完毕

    在使用多线程的时候有时候我们会使用 java.util.concurrent.Executors的线程池,当多个线程异步执行的时候,我们往往不好判断是否线程池中所有的子线程都已经执行完毕,但有时候这种 ...

  2. 判断线程池中的线程是否全部执行完毕

    在使用多线程的时候有时候我们会使用 java.util.concurrent.Executors的线程池,当多个线程异步执行的时候,我们往往不好判断是否线程池中所有的子线程都已经执行完毕,但有时候这种 ...

  3. go 怎么等待所有的协程完成_优雅地等待子协程执行完毕

    goroutine模拟了线程级别的返场的能力,但它的执行需要主协程给机会.一般的作法用sleep,chan阻塞,看起来让人不爽,本文介绍sync.WaitGroup 类型结合 defer 的特性,给出 ...

  4. 【前端】等待异步任务js执行完毕再执行

    [前端]等待异步任务js执行完毕再执行 //页面加载完毕后执行 $(function(){console.info('---- 我是js代码 Start ----');//异步方法集合let prom ...

  5. 日积月累:Java等待子线程执行完毕,再执行后续逻辑

    在实际开发过过程中,我们会经常遇见将一个"庞大"的任务拆分成多个子任务,各个子任务在独立的子线程中运行.待所有子线程的任务完成之后,在运行后续的业务,或者退出Main线程.代码如下 ...

  6. [C#] 等待启动的进程执行完毕

    有能有时候我们启动了一个进程,必须等到此进程执行完毕,或是,一段时间, 关闭进程后再继续往下走. Example sample1 等待应用程序执行完毕 //等待应用程序执行完毕private void ...

  7. 判断线程是否执行完毕_关于线程池你不能不知道的东西

    前言 平时接触过多线程开发的童鞋应该都或多或少了解过线程池,之前发布的<阿里巴巴 Java 手册>里也有一条: 可见线程池的重要性. 简单来说使用线程池有以下几个目的: 线程是稀缺资源,不 ...

  8. 判断线程是否执行完毕_Java并发编程 | 线程核心机制,基础概念扩展

    源码地址:GitHub || GitEE 一.线程基本机制 1.概念描述 并发编程的特点是:可以将程序划分为多个分离且独立运行的任务,通过线程来驱动这些独立的任务执行,从而提升整体的效率.下面提供一个 ...

  9. python判断线程结束_判断Threading.start新线程是否执行完毕的实例

    新写自己的Threading类 class MyThread(threading.Thread):#我的Thread类 判断流程结束没 用于os shell命令是否执行判断 def __init__( ...

最新文章

  1. HTML+CSS基础(2)-HTML标签的简单介绍和网页注释
  2. VM虚拟机的配置文件(.vmx)损坏修复
  3. 抖音xgorgon0408分析
  4. 使用UEFI Shell引导U盘启动
  5. Python面试题大全(五):测试、大数据、数据结构、架构
  6. 为什么要重写toString()方法和hashcode()方法
  7. 解决方案:Gateway实现全局跨域
  8. 年回报60%!孙正义如何经营“沉迷AI”的愿景基金?
  9. pandownload获取bdstoken失败怎么回事_巴菲特点透中国股市:假如你手中持有的股票早上快速拉高然后慢慢下跌,你晓得是怎么回事吗?...
  10. 阿里开发者们的第17个感悟:无细节不设计,无设计不架构
  11. 最近遇到个关于接口的奇怪的问题
  12. VS2013使用VS2015工程
  13. js 调用 百度/腾讯/高德地图app 导航 初始位置为我的位置
  14. 如何在Google Chrome中手动设置位置信息
  15. 【数据结构笔记】将两个递增的有序链表合并为一个递增的有序链表
  16. 年薪6万美元/应届医学博士赴加州大学圣迭戈分校博士后就职
  17. Linux 查看查找文件
  18. 蓝牙降噪耳机哪个比较好?四大热门降噪蓝牙耳机推荐
  19. 基于VLC的本地视频播放器
  20. Ubuntu安装腾讯APP

热门文章

  1. Windows10主机插入耳机只有一边有声音
  2. 【软件测试】Fiddler拦截+京东登陆练习
  3. 用keil软件完成STM32汇编程序的编写
  4. 基于Web SCADA平台构建数字化车间的MES系统
  5. sklearn和libsvm吗_机器学习笔记(3)-sklearn支持向量机SVM
  6. 太乐地图下载器5.0.5(破解版)
  7. 初次配置zookeeper——Invalid config, exiting abnormally
  8. 基于springboot jpa驾校管理系统源码
  9. 【剑指offer】解题思路汇总
  10. 货郎问题和计算复杂度