在Java中编写一个无限循环

时间:2013-06-22 03:05:21

标签: java database

我有一种情况,我需要运行Java代码来确定每1秒的某些数据库状态(仅限少数特定计数)。我计划创建一个无限循环,只有在数据库未运行时才会中断(在管理上或意外停止)。谁能告诉我一个编写无限循环的示例方法,它不会对正在运行的数据库造成任何伤害?或者,即使有更好的方法来实现此目标,也可以定期收集数据?

1 个答案:

答案 0 :(得分:2)

使用ScheduledExecutorService服务,例如以下示例:

import static java.util.concurrent.TimeUnit.*;
 class BeeperControl {
   private final ScheduledExecutorService scheduler =
     Executors.newScheduledThreadPool(1);

   public void beepForAnHour() {
     final Runnable beeper = new Runnable() {
       public void run() { System.out.println("beep"); }
     };

     final ScheduledFuture<?> beeperHandle =
       scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);

     scheduler.schedule(new Runnable() {
       public void run() { beeperHandle.cancel(true); }
     }, 60 * 60, SECONDS);

   }

    public static void main(String[] args) {
    BeeperControl bc=new BeeperControl();
    bc.beepForAnHour();
    }
 }