2012-04-01 6 views
5

この優れたオブジェクト指向設計は、すべての継承クラスを無限スレッドにしたいと仮定していますか?似たようなことをするより優れた、よりエレガントな方法はありますか?これは受け入れ可能なオブジェクト指向設計ですか。

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

関連する問題