zoukankan      html  css  js  c++  java
  • java线程之sleep

    翻译:https://www.journaldev.com/1020/thread-sleep-java

    简述

    Thread .sleep()方法用来暂停当前线程的执行,以毫秒为单位。还有另一个重载方法sleep(long millis, int nanos),它可以用来暂停当前线程的执行,可以指定毫秒和纳秒,允许的纳秒值在0到999999之间

    Thread.sleep()实例

    以下实例是暂停当前线程2秒

    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。这是由线程睡眠的工作原理和线程调度程序的操作系统的具体实现引起的。

    Thread.sleep()要点

    • 它总是暂停当前线程的执行
    • 线程睡眠被唤醒继续执行的实际时间取决于系统的定时器和调度器
    • 线程睡眠期间不会放弃任何已经持有的监视器或锁
    • 任何其它线程都可以中断当前线程的睡眠,这种情况下将抛出InterruptedException异常

    线程睡眠是如何工作的

    thread.sleep()与线程调度程序交互,以将当前线程置于特定的时间状态。等待时间结束后,线程状态被更改为可运行状态,并等待CPU进一步执行。所以当前线程睡眠的实际时间取决于操作系统的线程调度程序

    博主文章同步发布:https://blog.csdn.net/u010647035/article/details/83959552
  • 相关阅读:
    [CF1106E] 边界有问题
    UOJ 67 新年的毒瘤
    BZOJ 1093 [ZJOI2007]最大半连通子图
    codeforces round#510
    codeforces round#509
    杂谈
    BZOJ 3007 [SDOI2012]拯救小云公主
    BZOJ 1799
    BZOJ 3329
    BZOJ 3209 花神的数论题
  • 原文地址:https://www.cnblogs.com/liukaifeng/p/10052666.html
Copyright © 2011-2022 走看看