即使计算机进入睡眠模式,应用程序也必须正在运行

时间:2014-01-15 08:49:14

标签: java multithreading power-management

即使计算机进入睡眠模式,我仍希望我的应用程序继续运行。我在我的应用程序中使用了线程,它在特定的时间间隔后执行某些任务。

计算机睡眠时是否可以执行程序?

如果是,请提供一些解决方案或Java类。

2 个答案:

答案 0 :(得分:7)

计算机处于睡眠模式时无法运行应用程序!它是否是运行它的线程并不重要。如果计算机进入睡眠状态,线程也会睡眠。这就是睡眠的重点。

答案 1 :(得分:0)

这是您可以做的:

  1. 使您的Java程序仅执行一个工作单元。换句话说,如果您有一个while循环循环,然后等待N分钟,请不要这样做。只需执行一次,然后让程序完成即可。基本上可以重构您的程序,使其一次执行一个任务。

  2. 创建一个简单的Windows .bat脚本,该脚本将从命令行调用您的程序(例如java -cp)

  3. 创建Windows计划任务(或Linux中的Cron Job)。在Windows中,运行->任务计划程序。指定您希望任务执行的频率(例如,每天一次,几小时等)。

  4. 重要 :确保已选择“ 唤醒计算机以运行此任务”。另外,将计划任务指向您在上面的步骤2中创建的bat文件,我还将选中“以最高特权运行”。

  5. 此外,选择触发该事件的时间/方式(例如,当用户登录时,一天中的特定时间,计算机重启时,注销时等)

  6. 例如,如果希望计划的任务每天每15分钟运行一次,则可以设置以下触发器: a)每天的特定时间(例如下午1:00) b)选择“每天重复” c)选择“每15分钟重复一次,持续1天”

这将起作用。

此外,与您尝试执行的操作相比,它具有多个优点。主要是a)您的程序/线程不必每天24小时运行/休眠,b)偶尔Windows重启不会对您造成影响,c)计算机可以休眠的时间大部分(更低的电费)