在java中维护计时器

在java中维护计时器,java,timer,Java,Timer,我有一个要求,即我的程序应该运行一段确定的时间。 如何在java中维护一个计时器,使程序从程序执行开始时间起仅运行30分钟。您可以使用它来安排程序需要停止的时间。此时,您需要与主线程通信,告知程序应该停止运行(除非您只是想调用System.exit) 如果您使用的是Java版本1.5或更高版本,我建议您使用Executors框架。更具体地说, 另请参见。谢谢。这可以工作,但我需要从开始时间算起的实际分钟数,因为我必须在经过的时间内执行其他检查。如果其他条件和经过的时间大于指定的分钟数,则我可以终

我有一个要求,即我的程序应该运行一段确定的时间。 如何在java中维护一个计时器,使程序从程序执行开始时间起仅运行30分钟。

您可以使用它来安排程序需要停止的时间。此时,您需要与主线程通信,告知程序应该停止运行(除非您只是想调用
System.exit


如果您使用的是Java版本1.5或更高版本,我建议您使用Executors框架。更具体地说,


另请参见。

谢谢。这可以工作,但我需要从开始时间算起的实际分钟数,因为我必须在经过的时间内执行其他检查。如果其他条件和经过的时间大于指定的分钟数,则我可以终止程序。您可以通过执行以下操作来存储程序的开始时间:
startTime=System.currentTimeMillis()
在程序开始时。要了解程序运行了多长时间,请执行
(System.currentTimeMillis()-startTime)/60000
如果要(比如)每分钟检查是否终止程序,可以修改上面的代码-将
30*60000
替换为
60000,60000
(每分钟重复一次任务),然后在
run()
中有一个
if
语句,它检查我在注释中提供的条件,以及您需要的任何其他检查
startTime
应该是与
t
在同一范围内的
final long
。谢谢。这可以工作,但我需要从开始时间算起的实际分钟数,因为我必须执行其他检查以及经过的时间。如果其他条件和经过的时间大于指定的分钟数,我可以终止程序。
Timer t = new Timer();
t.schedule(new TimerTask() {
  @Override
  public void run() {
    System.exit(0);
  }
}, 30*60000);
Executors.newSingleThreadScheduledExecutor().schedule(new Runnable(){
    @Override
    public void run(){
        System.exit(0);
    }
}, 30, TimeUnit.MINUTES);