电脑睡眠对java程序的影响

一、问题

在win10系统电脑上写了一个定时任务程序,每天晚上会自动上报自己的健康信息,下班锁屏不关电脑,但是三个晚上都没成功,我开始怀疑是cron表达式写错了,但是经过校验都是对的,于是我想是不是电脑在晚上睡眠了,程序就不运行了,于是测试了下。

二、测试

代码:每隔10秒打印语句

package cn.xkw.aotureport.task;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.sql.Timestamp;

@Component
public class Test {

	@Scheduled(cron = "*/10 * * * * ?")
	public void test() {
		Timestamp timestamp = new Timestamp(System.currentTimeMillis());
		System.out.println(timestamp + "=========");
	}
}

睡眠:

结果:

程序睡眠后不会执行定时任务

三、原因

来自百度百科:

睡眠(Sleep),是Windows Vista中的新模式,这种模式结合了待机和休眠的所有优点。将系统切换到睡眠状态后,系统会将内存中的数据全部转存到硬盘上的休眠文件中(这一点类似休眠),然后关闭除了内存外所有设备的供电,让内存中的数据依然维持着(这一点类似待机)。这样,当我们想要恢复的时候,如果在睡眠过程中供电没有发生过异常,就可以直接从内存中的数据恢复(类似待机),速度很快;但如果睡眠过程中供电异常,内存中的数据已经丢失了,还可以从硬盘上恢复(类似休眠),只是速度会慢一点。

不过无论如何,这种模式都不会导致数据丢失。正因为睡眠功能有这么多优点,因此Windows Vista开始菜单上的电源按钮默认就会将系统切换到睡眠模式。所以我们大可充分利用这一新功能,毕竟从睡眠状态下恢复,速度要比从头启动快很多。而且睡眠模式也不是一直进行下去的,如果系统进入睡眠模式一段时间后(具体时间可以设定)没有被唤醒,那么还会自动被转入休眠状态,并关闭对内存的供电,进一步节约能耗。

四、设置

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值