Java 中的 Thread.sleep() - Java 线程睡眠

介绍

Java Thread.sleep() 方法可以用来暂停当前线程的执行时间,以毫秒为例.毫秒的参数值不能为负值。

’sleep(长毫米, int nanos)’是另一种方法,可以用来暂停当前线程的执行,指定数量的毫秒和纳米秒。

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

Thread.sleep 如何工作

Thread.sleep() 与线程安排器相互作用,将当前线程置于特定时间的等待状态。等待时间结束后,线程状态被更改为可运行状态,并等待CPU进行进一步执行。

Java Thread.sleep 关键点

它总是暂停当前的线程执行 2.在醒来和开始执行之前,线程的实际睡眠时间取决于系统计时器和日程表。对于安静的系统,实际睡眠时间接近指定的睡眠时间,但对于繁忙的系统,时间会稍长一些 3. Thread.sleep() 不会失去任何监视器或锁定它获得的当前线程 4. 任何其他线程可以在睡眠中中中断当前线程,在这种情况下,‘InterruptedException’ 会被扔掉

Java Thread.sleep 例子

以下是一个例子程序,其中Thread.sleep()被用来暂停主线程执行2秒(2000毫秒):

 1[label ThreadSleep.java]
 2package com.journaldev.threads;
 3
 4public class ThreadSleep {
 5
 6    public static void main(String[] args) throws InterruptedException {
 7        long start = System.currentTimeMillis();
 8
 9        Thread.sleep(2000);
10
11        System.out.println("Sleep time in ms = " + (System.currentTimeMillis() - start));
12    }
13}

首先,此代码将当前的系统时间存储在毫秒里,然后它会持续2000毫秒。最后,此代码会打印出新的当前系统时间减去以前的当前系统时间:

1[secondary_label Output]
2Sleep time in ms = 2005

请注意,这种差异不一定是2000毫秒,这是由于Thread.sleep()的运作方式和线程安排器的操作系统特定的实现。

结论

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

继续学习更多的Java教程(https://andsky.com/tags/java)。

Published At
Categories with 技术
Tagged with
comments powered by Disqus