2021-04-18 11:25  阅读(63)
文章分类:Java 基础教程 文章标签:JavaJava 教程
©  原文作者:w3cschool 原文地址:https://www.w3cschool.cn/java/java-thread-multiple.html

Java线程教程 - Java线程休眠

Thread类包含一个静态sleep()方法,它使线程在指定的持续时间内休眠。

Thread.sleep()方法接受超时作为参数。

我们可以指定超时的毫秒数,或毫秒和纳秒。执行此方法的线程将休眠指定的时间。

操作系统调度程序不调度睡眠线程以接收CPU时间。

如果线程在进入休眠之前拥有锁的所有权,则它在休眠期间继续保持这些锁。

sleep()方法抛出java.lang.InterruptedException,你的代码必须处理它。

例子

下面的代码演示了使用Thread.sleep()方法。

    public class Main {
      public static void main(String[] args) {
        try {
          System.out.println("sleep for 5  seconds.");
          Thread.sleep(5000);
          // The "main" thread will sleep
          System.out.println("woke up.");
        } catch (InterruptedException e) {
          System.out.println("interrupted.");
        }
        System.out.println("done.");
      }
    }
    

上面的代码生成以下结果。

2021041811218_1.png

例2

java.util.concurrent包中的TimeUnit枚举表示各种单位(如毫秒,秒,分钟,小时,天等)的时间测量值。

它有sleep()方法,其工作方式与Thread.sleep()相同。

我们可以使用TimeUnit的sleep()方法来避免持续时间转换:

    TimeUnit.SECONDS.sleep(5); // Same as  Thread.sleep(5000);
    

完整的源代码

    import java.util.concurrent.TimeUnit;
    
    public class Main {
      public static void main(String[] args) {
        try {
          System.out.println("sleep for 5  seconds.");
          TimeUnit.SECONDS.sleep(5); // Same as  Thread.sleep(5000);
          // The "main" thread will sleep
          System.out.println("woke up.");
        } catch (InterruptedException e) {
          System.out.println("interrupted.");
        }
        System.out.println("done.");
      }
    }
    

上面的代码生成以下结果。

2021041811211_2.png

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> Java 线程休眠
上一篇
Java 当前线程
下一篇
Java 线程加入