java - Thread.sleep() 是否使执行停止以获得准确的时间间隔

标签 java

这是我的代码

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/

相关文章:

java - 配置jmxremote时无法正常停止tomcat

java - 程序将点(.)计为字母字符

java - Retrofit 2.0 删除、放置不起作用

java - 注释中的代码导致编译失败 - 为什么?

java - 从 Livelink 导出数据

java - 如何将 JDom 文档的内容放入 File 对象中?

java - 需要在字段中输入值,检查结果,然后在 Selenium Java 中添加一个字符

java - 当我加载 java 服务器时 Memcached 退出

java - JBoss 中的 JNDI 绑定(bind)(LiveCycle 交 key )

java - LIKE 正在处理 BLOB 类型,但 = 不工作