2012-04-01 102 views
5

這是不錯的OO設計,假設您希望每一個繼承類都是一個無限的線程?任何更好/更優雅的做類似的事情?這是可以接受的OO設計

public abstract class Base implements Runnable { 

protected abstract void doSomething(); 

public void run() { 

    while (true) { 
     Thread.sleep(1000); 
     doSomething(); 
    } 
} 
} 

回答

11

如果只想doSomething執行每一秒,你可以在任務與ScheduledExecutorService移動到自己的Runnableschedule它。這樣可以減少程序中的線程數量並節省資源。

+0

scheduleWithFixedDelay,具體而言 – James 2012-04-02 01:51:41