2016-08-11 133 views
0

爲了滿足我公司的我需要實現一個循環Java循環睡眠

  1. 讀取具有同等的標誌字段記錄的需求,
  2. 要麼睡覺(如果結果爲空)或執行
  3. 更新狀態
  4. 在記錄由數據概述任務並重復1.

環路的用戶應該能夠通過從循環外部設置標誌來切換循環。

我嘗試過使用while循環與sleep執行它,但我想知道是否有更好的選擇。

+0

也許你看看'.wait ()'。 – Blobonat

+0

我建議看看[TimerTask](https://docs.oracle.com/javase/8/docs/api/java/util/TimerTask.html) –

+0

@RexWagenius我現在正在看它。也許這有助於給我一個我需要的例子。 –

回答

0

A cron job(Unix樣式名稱),任務調度程序。搜索將產生一些像石英這樣的庫。他們是基於計時器的。

1

我personnaly會使用TimerTimerTask這似乎滿足您的要求,並已包含在JDK中。

否則,你也可以看看Quartz這是更完整的。

下面是一個使用計時器每秒啓發this page一次執行任務的例子:

public class Reminder { 
Timer timer; 

public startReminder() { 
    timer = new Timer(); 
    timer.schedule(new RemindTask(), 
        0,  //initial delay 
        1*1000); //subsequent rate 
} 

class RemindTask extends TimerTask { 
    public void run() { 
     System.out.println("Time's up!"); 
     //use timer.cancel() to stop the reminder 
    } 
} 
} 
... 
1

javafx.animation.PauseTransition也是一種選擇:

PauseTransition pause = new PauseTransition(
      Duration.seconds(2) 
    ); 
    pause.setOnFinished(event -> System.out.println("Woke up....")); 
    System.out.println("Going to sleep...."); 
    pause.play(); 
+0

我對Javafx知之甚少,但'PauseTransion'只能執行一次。 TimeLine似乎更符合要求。無論如何,我不喜歡在看起來像後端代碼的情況下使用表示級元素的想法。 –

+0

我同意。它不適合任何目的。 – c0der