gpt4 book ai didi

java - 如何在 Java 中触发 sleep 或 hibernate 唤醒功能?

转载 作者:搜寻专家 更新时间:2023-11-01 02:42:37 24 4
gpt4 key购买 nike

我有线程在后台工作,计算新一天之前的时间,等待那个时间,然后更新我的 UI。如何让程序在计算机从 hibernate 或 hibernate 状态唤醒时重新启动该线程?

最佳答案

您应该能够将您的系统配置为在系统启动时自动启动您的 Java 应用程序。问题是如何应对系统 hibernate 。

这不完全是您要求的,但我认为这做同样的事情:在 Java 应用程序中,缩短您的 sleep 时间(例如 5 分钟),然后在您调用 Thread.sleep() 之前计算您认为线程应该唤醒。如果您醒来的当前时间与您预期的时间有很大不同,您可以假设存在系统 hibernate 并且您可以调整任何时间到新一天的估计。当然,如果您以 n 分钟为间隔 sleep ,那么您可能只需调整您的逻辑以 sleep n 分钟或直到午夜,以较早者为准。

我在可以挂起的虚拟机上运行这段代码,它正确识别了 VM 挂起的时间:

    long pause = 10000L;
long error = 100L;

while (true) {
long sleepTil = System.currentTimeMillis() + pause + error;
try { Thread.sleep(pause); } catch (InterruptedException e) { }
if (System.currentTimeMillis() > sleepTil) {
System.out.println("System was suspended");
} else {
System.out.println("System was not suspended.");
}
}

关于java - 如何在 Java 中触发 sleep 或 hibernate 唤醒功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30276202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com