线程的生命周期:
当线程被创建并启动之后,它并不是直接就进入了执行状态,在线程的生命周期中有新建、就绪、运行、阻塞和死亡 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 线程输出一次。