📜  java 线程类 sleep - Java (1)

📅  最后修改于: 2023-12-03 14:42:19.644000             🧑  作者: Mango

Java线程类sleep

简介

在Java语言中,线程一般通过继承Thread类或实现Runnable接口来创建。线程的执行可以通过调用start()方法来启动线程,但有时需要暂停线程的执行一段时间,这时可以使用线程的sleep()方法。

sleep()方法是Thread类中的静态方法,其定义如下:

public static void sleep(long millis) throws InterruptedException

其中,millis参数表示需要暂停的毫秒数。sleep()方法会让当前线程暂停执行指定的时间,直到时间结束或被中断。

示例

下面是一个简单的示例程序,演示了如何使用sleep()方法:

public class SleepDemo {

    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println("当前时间:" + System.currentTimeMillis());
            try {
                Thread.sleep(1000); // 线程暂停1秒
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

输出结果如下:

当前时间:1579270428247
当前时间:1579270429248
当前时间:1579270430248
当前时间:1579270431249
当前时间:1579270432250

可以看到,程序每隔一秒输出一次当前时间。

注意事项
  • sleep()方法会让当前线程暂停执行,但不会释放锁。
  • sleep()方法可能会被其他线程中断,如果线程被中断,它会抛出InterruptedException异常。
  • 由于sleep()方法是静态方法,因此可以在任何地方使用,不需要实例化。
  • sleep()方法的毫秒数必须是正数,否则会抛出IllegalArgumentException异常。
总结

Java线程类sleep()方法提供了一种简单的暂停线程执行的方法,可以在实际开发中用来模拟一些场景,比如等待一段时间再执行下一个任务。需要注意的是,在使用sleep()方法时要考虑到可能被中断的情况,同时也要注意该方法不会释放锁,这一点在多线程编程中尤为重要。