线程等待 Join()方法

本文探讨了Java中线程的Join方法,该方法用于实现线程间的同步,使得调用线程会等待指定线程执行完毕后再继续执行。通过实例代码详细解释了Join方法的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • Join()方法是让一个线程等待另一个线程的完成
    这里写图片描述
    下面看个例子:
package project11;

public class TestJoin extends Thread {
	public void run() {
		for(int i= 1;i<=10;i++)//线程循环10次输出
		{
			System.out.println(Thread.currentThread().getName()+"第"+i+"次运行");
		}
		System.out.println(Thread.currentThread().getName()+"运行结束");
	}
	public static void main(String [] args) {   //main函数的主线程开始运行
		System.err.println("主线程开始运行");
		TestJoin tj = new TestJoin();   //创建线程类
		tj.setName("线程1");    //给线程起名字
		try {
			long start = System.nanoTime();
			tj.start();
			tj.join();  //等待tj线程运行结束
			long end = System.nanoTime();
			System.out.println("耗时"+(end-start)/1000000+"毫秒");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	System.out.println("主线程运行结束");//main函数的主线程运行结束
	}
	
	

}
从程序运行结果可以看出,main方法代表的主线程在建立TestJoin tj 这个线程对象后,调用t.start()来运行线程,并调用了tj.join()来等待线程tj的完成,在线程tj完成了10次字符输出并结束线程后,主线程才计算了线程tj的耗时,并输出字符然结束主线程的运行。
![这里写图片描述](https://img-blog.youkuaiyun.com/20171223123557230?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkwNDY3Mjc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
**这样理解会简单一些**
**!!!!!把程序中的tj.join()这行程序注释掉,会发现**
如果没有使用Join方法,那么主线程就会在tj线程还未运行结束前就结束。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值