2012-10-24 76 views
1

在jave我有一個狀態機,我需要遷移到自動狀態更改,在這裏我的意思是我需要狀態更改後發生certan間隔..例如5秒狀態之一,10秒後狀態2。定時狀態機,這是否工作?

我正在考慮使用;

ScheduledExecutorService executor = new ScheduledThreadPoolExecutor(1); 

計劃,基本上調用一個方法,這將改變狀態,然後再安排一次任務切換到下一個狀態,等任務。

任何想法?

+0

它看起來可能有效。你試過了嗎? – KJP

+0

是的,我有,它有點工作。只是似乎沒有感覺正確。 – user1555190

回答

0

類似這樣的極品代碼:

ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1); 
exec.scheduleWithFixedDelay(new Runnable() { 
     public void run() { 
      // TODO: do something 
     } 
    }, 
    0, // no wait and start the 1st one 
    5, // delay 5 seconds and do the next one 
    TimeUnit.SECONDS); 

你也可以考慮scheduleAtFixedRate()。

相關問題