Java多线程join方法实例代码

 更新时间:2018年02月05日 09:15:15   作者:szu_lg  
这篇文章主要介绍了Java多线程join方法实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

本文研究的主要是Java多线程中join方法的使用问题,以下文为具体实例。

Thread的非静态方法join()让一个线程B“加入”到另外一个线程A的尾部。在A执行完毕之前,B不能工作。例如:

Thread t = new MyThread();
t.start();
t.join();

另外,join()方法还有带超时限制的重载版本。 例如t.join(5000);则让线程等待5000毫秒,如果超过这个时间,则停止等待,变为可运行状态。

线程的加入join()对线程栈导致的结果是线程栈发生了变化,当然这些变化都是瞬时的。

public class TestJoin {
	public static void main(String[] args) {
		MyThread2 t1 = new MyThread2("TestJoin");
		t1.start();
		try {
			t1.join();
			//join()合并线程,子线程运行完之后,主线程才开始执行
		}
		catch (InterruptedException e) {
		}
		for (int i=0 ; i <10; i++)
		System.out.println("I am Main Thread");
	}
}
class MyThread2 extends Thread {
	MyThread2(String s) {
		super(s);
	}
	public void run() {
		for (int i = 1; i <= 10; i++) {
			System.out.println("I am "+getName());
			try {
				sleep(1000);
				//暂停,每一秒输出一次
			}
			catch (InterruptedException e) {
				return;
			}
		}
	}
}

程序运行结果:

I am TestJoin
I am TestJoin
I am TestJoin
I am TestJoin
I am TestJoin
I am TestJoin
I am TestJoin
I am TestJoin
I am TestJoin
I am TestJoin
I am Main Thread
I am Main Thread
I am Main Thread
I am Main Thread
I am Main Thread
I am Main Thread
I am Main Thread
I am Main Thread
I am Main Thread
I am Main Thread

总结

以上就是本文关于Java多线程join方法实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

  • SpringBoot中使用Thymeleaf模板详情

    SpringBoot中使用Thymeleaf模板详情

    这篇文章主要介绍了SpringBoot中使用Thymeleaf模板详情,hymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎,能够处理HTML,XML,JavaScript,CSS甚至纯文本,下文更多相关资料介绍需要的小伙伴可以参考一下
    2022-04-04
  • Java 数组高频考点分析讲解

    Java 数组高频考点分析讲解

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。Java 语言中提供的数组是用来存储固定大小的同类型元素
    2022-04-04
  • 详解JAVA 设计模式之状态模式

    详解JAVA 设计模式之状态模式

    这篇文章主要介绍了JAVA 状态模式的的相关资料,文中讲解的非常细致,帮助大家更好的学习理解JAVA 设计模式,感兴趣的朋友可以了解下
    2020-06-06
  • Java使用MessageFormat应注意的问题

    Java使用MessageFormat应注意的问题

    这篇文章主要介绍了Java使用MessageFormat应注意的问题,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-06-06
  • SpringBoot+RabbitMQ方式收发消息的实现示例

    SpringBoot+RabbitMQ方式收发消息的实现示例

    这篇文章主要介绍了SpringBoot+RabbitMQ方式收发消息的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • SpringEvents与异步事件驱动案例详解

    SpringEvents与异步事件驱动案例详解

    本文深入探讨了SpringBoot中的事件驱动架构,特别是通过Spring事件机制实现组件解耦和系统扩展性增强,介绍了事件的发布者、事件本身、事件监听器和事件处理器的概念,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • selenium + ChromeDriver安装及使用方法

    selenium + ChromeDriver安装及使用方法

    这篇文章主要介绍了selenium + ChromeDriver安装及使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • Java实现京东联盟API数据获取功能

    Java实现京东联盟API数据获取功能

    这篇文章介绍了Java获取京东联盟API数据的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Java中LinkedList数据结构的详细介绍

    Java中LinkedList数据结构的详细介绍

    这篇文章主要介绍了Java中LinkedList,Linked List 是 java.util 包中 Collection 框架的一部分,文中提供了详细的代码说明,需要的朋友可以参考下
    2023-05-05
  • Java中如何自定义一个类加载器加载自己指定的类

    Java中如何自定义一个类加载器加载自己指定的类

    这篇文章主要给大家介绍了关于Java中如何自定义一个类加载器加载自己指定的类,自定义类加载器允许我们加载特定路径的类文件,并且可以用于插件系统、热部署和隔离加载等场景,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-12-12

最新评论