专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java 中的 Thread.sleep()(java 中的关键字)

temp10 2025-04-07 19:04:30 java教程 11 ℃ 0 评论

介绍

Java 方法可用于将当前线程的执行暂停指定的时间(以毫秒为单位)。毫秒的参数值不能为负数。否则,它会抛出.Thread.sleep()IllegalArgumentException

sleep(long millis, int nanos)是另一种方法,可用于将当前线程的执行暂停指定的毫秒数和纳秒数。允许的纳秒值介于 0 999999 之间。

Java 中的 Thread.sleep()(java 中的关键字)

Thread.sleep 的工作原理

Thread.sleep()与线程调度程序交互,以使当前线程在指定的时间段内处于等待状态。等待时间结束后,线程状态将更改为可运行状态,并等待 CPU 进一步执行。当前线程休眠的实际时间取决于作为操作系统一部分的线程调度程序。

Java Thread.sleep 要点

  1. 它始终暂停当前线程执行。
  2. 线程在唤醒并开始执行之前休眠的实际时间取决于系统计时器和计划程序。对于安静的系统,实际睡眠时间接近指定的睡眠时间,但对于繁忙的系统,它会更长一点。
  3. Thread.sleep()不会丢失任何监视器或锁定它已获取的当前线程。
  4. 任何其他线程都可以在睡眠中中断当前线程,在这种情况下会被抛出InterruptedException

Java Thread.sleep 示例

下面是一个示例程序,Thread.sleep()用于暂停主线程执行 2 秒(2000 毫秒):

package com.journaldev.threads;

public class ThreadSleep {

      public static void main(String[] args) throws InterruptedException {
          long start = System.currentTimeMillis();

          Thread.sleep(2000);

          System.out.println("Sleep time in ms = " + (System.currentTimeMillis() - start));
      }
}

首先,此代码以毫秒为单位存储当前系统时间。然后它休眠 2000 毫秒。最后,此代码打印出新的当前系统时间减去以前的当前系统时间:

Output
Sleep time in ms = 2005

请注意,此差异并非精确为 2000 毫秒。这是由于线程调度程序的工作方式和特定于操作系统的实现。

结论

在本文中,您了解了 Java 的 .Thread.sleep()

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表