我们面临实时时钟 (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/