java中join()方法理解与应用

本文通过示例代码详细解析了Java中线程的join方法如何实现主线程等待子线程执行完毕后再继续运行的机制,并展示了多线程并发执行的过程。

java中,join()方法的作用是阻塞,即当前线程等待线程结束,才继续执行。

示例代码

package com.base;

public class TestJoin {

    public static void main(String[] args) throws InterruptedException {
        System.out.println("线程" + Thread.currentThread().getName() + " 开始执行...");
        MyThread t1 = new MyThread("T1");
        MyThread t2 = new MyThread("T2");
        MyThread t3 = new MyThread("T3");
        System.out.println("线程T1开始执行...");
        t1.start();
        //t1加入主线程,主线程后面的代码都等待t1执行完毕。
        t1.join();

        System.out.println("线程T2开始执行...");
        t2.start();
        System.out.println("线程T3开始执行...");
        t3.start();
        //t2、t3加入主线程,主线程后面的代码都等待t2、t3执行完毕,t2,t3并发执行。
        t2.join();
        t3.join();
        System.out.println("线程" + Thread.currentThread().getName() + " 结束!");
    }
}

class MyThread extends Thread {
    private String name;

    public MyThread(String name) {
        this.name = name;
    }

    public void run() {
        for (int i = 1; i <= 5; i++) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            System.out.println("线程" + name + "执行至" + i + ", 进行中");
        }
        System.out.println("线程" + name + " 结束!");
    }
}

打印输出

线程main 开始执行...
线程T1开始执行...
线程T1执行至1, 进行中
线程T1执行至2, 进行中
线程T1执行至3, 进行中
线程T1执行至4, 进行中
线程T1执行至5, 进行中
线程T1 结束!
线程T2开始执行...
线程T3开始执行...
线程T2执行至1, 进行中
线程T3执行至1, 进行中
线程T3执行至2, 进行中
线程T2执行至2, 进行中
线程T2执行至3, 进行中
线程T3执行至3, 进行中
线程T3执行至4, 进行中
线程T2执行至4, 进行中
线程T3执行至5, 进行中
线程T2执行至5, 进行中
线程T2 结束!
线程T3 结束!
线程main 结束!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春风化作秋雨

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值