关于 sleep 方法的一些要点是:
system timers and schedulers
synchronized
interrupt()
synchronized(lockedObject) { Thread.sleep(1000); // It does not release the lock on lockedObject. // So either after 1000 miliseconds, current thread will wake up, or after we call //t. interrupt() method.
示例:创建一个类FirstThread.java,如下所示。
FirstThread.java
package org.arpit.java2blog.thread; public class FirstThread implements Runnable{ public void run() { System.out.println("Thread is running"); } }
创建名为的主类ThreadSleepExampleMain.java
ThreadSleepExampleMain.java
package org.arpit.java2blog.thread; public class ThreadSleepExampleMain { public static void main(String args[]) { FirstThread ft= new FirstThread(); Thread t=new Thread(ft); t.start(); long startTime=System.currentTimeMillis(); try { // putting thread on sleep Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } long endTime=System.currentTimeMillis(); long timeDifference=(endTime-startTime); System.out.println("Time difference between before and after sleep call: "+timeDifference); } }
当您运行上述程序时,您将获得以下输出。
Thread is running Time difference between before and after sleep call: 1001
您可以看到有 1000 毫秒(1 秒)的延迟。如前所述,其准确性取决于系统计时器和调度程序。
Thread.sleep()与线程调度程序一起使用以在特定时间段内暂停当前线程执行。一旦线程等待期结束,线程的状态将再次更改为可运行,并可用于 CPU 进一步执行。
Thread.sleep()
这就是 Java 线程睡眠示例的全部内容
原文链接:https://codingdict.com/