网站首页 > 精选教程 正文
介绍
Java 方法可用于将当前线程的执行暂停指定的时间(以毫秒为单位)。毫秒的参数值不能为负数。否则,它会抛出.Thread.sleep()IllegalArgumentException
sleep(long millis, int nanos)是另一种方法,可用于将当前线程的执行暂停指定的毫秒数和纳秒数。允许的纳秒值介于 0 和 999999 之间。
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 毫秒。最后,此代码打印出新的当前系统时间减去以前的当前系统时间:
Output
Sleep time in ms = 2005
请注意,此差异并非精确为 2000 毫秒。这是由于线程调度程序的工作方式和特定于操作系统的实现。
结论
在本文中,您了解了 Java 的 .Thread.sleep()
猜你喜欢
- 2024-11-23 线程生命周期
- 2024-11-23 线程同步synchronized(不同步的问题、队列与锁),死锁产生和解决
- 2024-11-23 面试突击31:什么是守护线程?它和用户线程有什么区别?
- 2024-11-23 Java之TimeUnit的使用
- 2024-11-23 每日分享- NodeJS 程序中实现线程睡眠
- 2024-11-23 Java 17 多线程中的守护线程
- 2024-11-23 美团面试真题之一个线程OOM,进程里的其他线程还能运行吗?
- 2024-11-23 Java多线程-线程中断interrupt
- 2024-11-23 C++ 让线程休眠特定时间
- 2024-11-23 什么是线程死锁?形成条件是什么?如何避免?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)