这是我的代码
try{
System.out.println("Before");
thread.sleep(10000);//sleep for 10000 ms
System.out.println("After");
}
catch(ItrerruptedException ie){
//If this thread was intrrupted by nother thread
}
我只想知道线程是否会 hibernate exaclty 10 秒然后打印 After
还是有一些延迟?
最佳答案
来自 javadocs:使当前正在执行的线程 hibernate (暂时停止执行)指定的毫秒数,这取决于系统计时器和调度程序的精度和准确性。
这意味着它将 hibernate 至少 10 秒钟。如果调度程序决定在 10 秒结束后不让它运行,它可能会睡得更久。
如果更多并发线程同时在可运行池中,则可能会发生这种情况。
关于java - Thread.sleep() 是否使执行停止以获得准确的时间间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10500831/