介绍
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)。