这个优秀的OO设计假设您希望每个继承类都是无限的线程吗?做类似事情的更好/更优雅的方式?
public abstract class Base implements Runnable {
protected abstract void doSomething();
public void run() {
while ( true ) {
Thread.sleep(1000);
doSomething();
}
}
}
答案 0 :(得分:11)
如果您只想让doSomething
每秒执行一次,您可以将任务移动到自己的Runnable
,并schedule
将其移动到ScheduledExecutorService
。这样,您可以减少程序中的线程数并节省资源。