线程的生命周期之线程“插队“

如大家所了解的,线程生命周期就是线程从出生到结束的全过程。Java 里主要分‌6 种状态‌,包括新建、可运行、阻塞、等待、计时等待和终止 。‌‌‌

线程"插队"

Thread 提供了让一个线程等待另一个线程完成的方法------ join () 方法。当在某个程序执行流中调用其他线程的 join () 方法时,调用线程将被阻塞,直到被 join () 方法加入的 join 线程执行完为止。

以下是一个使用 join 方法的 Java 多线程代码示例:

复制代码
public class JoinThreadExample {

    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new Thread(() -> {
            System.out.println("Thread 1 started");
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("Thread 1 finished");
        });

        Thread t2 = new Thread(() -> {
            System.out.println("Thread 2 started");
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("Thread 2 finished");
        });

        t1.start();
        t2.start();

        // 使用 join 方法,让主线程等待 t1 和 t2 线程执行完毕后再继续执行
        t1.join();
        t2.join();

        System.out.println("All threads finished");
    }
}

在这个例子中,我们创建了两个线程 t1 和 t2 ,它们分别会休眠 5 秒和 3 秒,然后打印出一条信息。我们使用 join 方法将主线程阻塞,直到 t1 和 t2 线程执行完毕后再继续执行主线程。最后,我们打印出一条 "All threads finished" 消息,表示所有线程都已经执行完毕。

相关推荐
小羊没烦恼!3 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
默_笙3 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
俊昭喜喜里3 天前
java中的继承和多态的区别
java
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
qq_426003963 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
譕痕3 天前
JSONObject与JSONArray封装数据格式区别
java·json
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
胡写代码3 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖3 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
长沙三为智能科技3 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python