5

假设您希望每个继承类都是无限线程,这是一个好的 OO 设计吗?做类似事情的任何更好/更优雅的方式?

public abstract class Base implements Runnable {

protected abstract void doSomething();

public void run() {

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

1 回答 1

11

如果您只想doSomething每秒执行一次,您可以将任务移动到它自己的位置Runnable,并schedule使用ScheduledExecutorService. 这样,您可以减少程序中的线程数并节省资源。

于 2012-04-02T00:03:27.003 回答