龙空技术网

Java 中的 Thread.sleep()

农非农 138

前言:

今天姐妹们对“java唤醒sleep方法”可能比较关心,我们都想要剖析一些“java唤醒sleep方法”的相关知识。那么小编在网上汇集了一些关于“java唤醒sleep方法””的相关知识,希望兄弟们能喜欢,小伙伴们快快来了解一下吧!

介绍

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

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

Thread.sleep()

Thread.sleep 的工作原理

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

Java Thread.sleep 要点它始终暂停当前线程执行。线程在唤醒并开始执行之前休眠的实际时间取决于系统计时器和计划程序。对于安静的系统,实际睡眠时间接近指定的睡眠时间,但对于繁忙的系统,它会更长一点。Thread.sleep()不会丢失任何监视器或锁定它已获取的当前线程。任何其他线程都可以在睡眠中中断当前线程,在这种情况下会被抛出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 毫秒。最后,此代码打印出新的当前系统时间减去以前的当前系统时间:

OutputSleep time in ms = 2005

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

结论

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

标签: #java唤醒sleep方法