在计算机睡眠时恢复Java程序?
我有一个Java程序,其中有一个循环,每20秒检查一次新消息 例如:在计算机睡眠时恢复Java程序?,java,loops,sleep,resume,Java,Loops,Sleep,Resume,我有一个Java程序,其中有一个循环,每20秒检查一次新消息 例如: while (true) { Thread.sleep(20000); newMessages(); } 这在计算机运行时起作用。然而,如果用户想让他们的计算机进入睡眠状态,然后在一段时间后将其唤醒,那么整个程序就会混乱,不再每隔二十秒检查一次消息。有没有办法纠正这个问题?而不是使用线程。sleep你可以使用定时器 线程调度任务以供将来在后台线程中执行的工具。任务可以安排为一次性执行,也可以定期重复执行 您的
while (true) {
Thread.sleep(20000);
newMessages();
}
这在计算机运行时起作用。然而,如果用户想让他们的计算机进入睡眠状态,然后在一段时间后将其唤醒,那么整个程序就会混乱,不再每隔二十秒检查一次消息。有没有办法纠正这个问题?而不是使用
线程。sleep
你可以使用定时器
线程调度任务以供将来在后台线程中执行的工具。任务可以安排为一次性执行,也可以定期重复执行
您的代码可能是:
final Timer timer = new Timer();
final TimerTask task = new TimerTask() {
@Override
public void run() {
newMessages();
}
};
timer.scheduleAtFixedRate(task, new Date(), 20000);