线程的生命周期之线程睡眠

线程的生命周期:

当线程被创建并启动之后,它并不是直接就进入了执行状态,在线程的生命周期中有新建、就绪、运行、阻塞和死亡 5 种状态。 CPU 需要在多条线程之间切换,线程状态也会多次在运行、就绪状态之间切换,从而让多线程程序正常执行。线程生命周期示意图如图所示:

线程睡眠

如果需要让当前正在执行的线程暂停一段时间,并进入阻塞状态,则可以通过调用 Thread 静态 sleep () 方法来实现。

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

复制代码
public class SleepThreadDemo {

    public static void main(String[] args) {
        Thread t1 = new Thread(() -> {
            for (int i = 1; i <= 5; i++) {
                System.out.println("Thread 1 - " + i);
                try {
                    Thread.sleep(1000); // 线程休眠1秒
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });

        Thread t2 = new Thread(() -> {
            for (int i = 1; i <= 5; i++) {
                System.out.println("Thread 2 - " + i);
                try {
                    Thread.sleep(2000); // 线程休眠2秒
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });

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

在这个示例中,我们创建了两个线程 t1 和 t2 。每个线程都打印出一些信息,然后使用 sleep 方法使线程休眠一段时间。t1 线程每次休眠 1 秒钟,而 t2 线程每次休眠 2 秒钟。当我们运行这个程序时,我们会看到两个线程交替执行,每秒钟 t1 线程输出一次,每两秒钟 t2 线程输出一次。

相关推荐
mldong3 小时前
引擎从不发一条消息:jeeflow 的两类扩展点与消息模块的分工
java·架构
君顾13 小时前
智慧零售实战指南:从技术架构到落地方案全解析
java·开发语言·零售
南棱笑笑生4 小时前
20260904实测给飞凌OK3576-C开发板刷入Rockchip原厂的IMG固件【使用飞凌的DTS】切换串口波特率为1.5Mbps
c语言·开发语言·rockchip
zhanghe6874 小时前
es的密码带有特殊字符,导出
java
平头哥技术团队4 小时前
Day 10 | 工欲善其事:VS Code 配置与项目归档
android·开发语言·前端·javascript·html·交互
pnoker4 小时前
IoT DC3 概念解读:把设备抽象成一套语义模板——位号、指令、事件与面向智能体的设备建模
java·人工智能·物联网·iot·dc3
乌萨奇也要立志学C++4 小时前
【洛谷】kmp算法
开发语言·算法
my_realmy4 小时前
Java SE 基础学习笔记(一):面向对象、继承多态、抽象接口与异常(JDK 8)
java·多线程·并发··生产者消费者模式
传奇开心果编程4 小时前
【Rust入门知识点学与练】第4课:条件判断 if / else
开发语言·学习·rust
m0_380743875 小时前
给 Claude API 调用补上超时重试和错误分类
开发语言·人工智能·php