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

 更新时间:2017年04月06日 09:59:04   投稿:lqh  
这篇文章主要介绍了java 中Thread.join()的使用方法的相关资料,需要的朋友可以参考下

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

如果一个线程A执行了thread.join()语句,其含义是:当前线程A等待thread线程终止之后才从thread.join()返回。

import java.util.concurrent.TimeUnit;

/**
 * 6-13
 */
public class Join {
 public static void main(String[] args) throws Exception {
  Thread previous = Thread.currentThread();
  for (int i = 0; i < 10; i++) {
   // 每个线程拥有前一个线程的引用,需要等待前一个线程终止,才能从等待中返回
   Thread thread = new Thread(new Domino(previous), String.valueOf(i));
   thread.start();
   previous = thread;
  }

  TimeUnit.SECONDS.sleep(5);
  System.out.println(Thread.currentThread().getName() + " terminate.");
 }

 static class Domino implements Runnable {
  private Thread thread;

  public Domino(Thread thread) {
   this.thread = thread;
  }

  public void run() {
   try {
    thread.join();
   } catch (InterruptedException e) {
   }
   System.out.println(Thread.currentThread().getName() + " terminate.");
  }
 }
}

执行结果:

main terminate.
0 terminate.
1 terminate.
2 terminate.
3 terminate.
4 terminate.
5 terminate.
6 terminate.
7 terminate.
8 terminate.
9 terminate.
 

相关文章

  • 深入理解final变量的初始化

    深入理解final变量的初始化

    本篇文章是对final变量的初始化进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 线程池ThreadPoolExecutor并行处理实现代码

    线程池ThreadPoolExecutor并行处理实现代码

    这篇文章主要介绍了线程池ThreadPoolExecutor并行处理实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • SpringBoot超详细讲解事务管理

    SpringBoot超详细讲解事务管理

    事务的作用就是为了保证用户的每一个操作都是可靠的,事务中的每一步操作都必须成功执行,只要有发生异常就 回退到事务开始未进行操作的状态。事务管理是Spring框架中最为常用的功能之一,我们在使用Spring Boot开发应用时,大部分情况下也都需要使用事务
    2022-08-08
  • Java执行Linux命令简单代码举例

    Java执行Linux命令简单代码举例

    这篇文章主要给大家介绍了关于Java执行Linux命令的相关资料,在开发的过程中要善于利用JAVA面向对象编程的优势,与Linux/Unix命令或Shell脚本的优势,并将二者相结合,需要的朋友可以参考下
    2023-12-12
  • jQuery.event.trigger()的简单解释

    jQuery.event.trigger()的简单解释

    今天小编就为大家分享一篇关于jQuery.event.trigger()的简单解释,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Java线程池的四种拒绝策略详解

    Java线程池的四种拒绝策略详解

    jdk1.5 版本新增了JUC并发编程包,极大的简化了传统的多线程开发,下面这篇文章主要介绍了Java线程池的四种拒绝策略的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • SpringBoot+Redis执行lua脚本的5种方式总结

    SpringBoot+Redis执行lua脚本的5种方式总结

    Lua是一种快速、轻量级的脚本语言,广泛应用于各种领域,包括数据库,Redis作为一个内嵌Lua解释器的NoSQL数据库,允许通过Lua脚本在服务器端执行一些复杂的操作,本文给大家介绍了使用SpringBoot Redis执行lua脚本的五种方式,需要的朋友可以参考下
    2023-11-11
  • JAVA多线程进阶方式(Runnable接口的讲解和运用)

    JAVA多线程进阶方式(Runnable接口的讲解和运用)

    这篇文章主要介绍了JAVA多线程进阶方式(Runnable接口的讲解和运用),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Java对称加密算法DES实例详解

    Java对称加密算法DES实例详解

    这篇文章主要介绍了Java对称加密算法DES,结合实例形式详细分析了java DES算法的概念、原理、实现方法与应用场景,需要的朋友可以参考下
    2019-09-09
  • Springboot项目出现java.lang.ArrayStoreException的异常分析

    Springboot项目出现java.lang.ArrayStoreException的异常分析

    这篇文章介绍了Springboot项目出现java.lang.ArrayStoreException的异常分析,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12

最新评论