java - sleep、wait、park 的 native 实现可以依赖 RTC 吗?

标签 java winapi timer window clock

我们面临实时时钟 (RTC) 电池的一些问题。它们通常都很老,有时其中一个会死……或者只是变得更弱。这确实无法预测。无论它是由主板故障、湿度、老化还是其他原因触发,它都会发生。我们可以更换它们,或者更换计算机,但这不是这里的问题。

如果有人知道 RTC 故障是否会影响以下功能,那就太好了:

public static native void sleep(long millis) throws InterruptedException;
public final native void wait(long timeout) throws InterruptedException;
public native void park(boolean paramBoolean, long paramLong);

park位于sun.misc.Unsafe

这些函数的行为可能取决于操作系统和硬件组件,但它可能是......几乎任何东西。我只知道它是一台 PC,运行 Windows(XP 或更高版本)并使用标准 1.6 JVM。计算机的使用生命周期可能长达 10 年。

我查看了开放的JDK,发现sleep(long millis)将会WaitForMultipleObjects 。 完全不知道park(boolean paramBoolean, long paramLong)我在试图了解 wait(long timeout) 发生了什么时迷失了方向.

最佳答案

简单的测试。睡十分钟,然后立即将时钟调快一小时,看看它是否会在完整的十分钟结束之前醒来。这可能比在 JDK 内部进行搜索要容易得多:-)

但我还是不得不说。开发人员不应该使用已有十年历史的硬件,尤其不应该使用有缺陷的硬件。

关于java - sleep、wait、park 的 native 实现可以依赖 RTC 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9408351/

相关文章:

java - 如何在 x 秒后处理 JOptionPane

java - 产品的 HBase 架构文件

java - TCP 套接字连接是否有 "keep alive"?

java - URLConnection inputStream 返回 "Busy"为什么?

c++ - 术语信号事件中的 Windows 进程退出代码

javascript - 在 setTimeout 中设置为 true 的变量总是 false?

java - SSL 连接握手 Java 8 不工作

c++ - 我的多线程程序在双核机器上运行缓慢或出现死锁,请帮忙

c++ - PRINTDLG 结构在不同进程的 hWnd 上使用

OpenGL ES 线程中的 Android 时序不是单调的