我有一个类,其中我在线程池中使用固定数量的线程使用Executor Service,该线程执行多个短期任务。
我的代码是这样的:
public class MessageConsumer{
private ExecutorService executor = Executors.newFixedThreadPool(4);
main(){
.....
}
receiveMessage(String message){
try{
executor.execute(new FileWriterTask(message))
......
}catch(Exception e){
........
executor.shutDown();
.........
}
}
.....
}
如您所见,我已经在类级别定义并实例化了Executor服务
并在方法中使用它。我已将其设为私有,并且没有方法可以从中访问它
外。
我想知道我是否也应该将Executor服务实例标记为静态,因为那意味着每个类仅一个实例。我想目前也只有每堂课一个。有什么好的做法?
宣告执行人服务是一个好的设计?
最佳答案
如果要创建MessageConsumer
类的多个实例,则可能有一个用例来共享ExecutorService
实例,因此可以使其变为静态。
但是,如果仅创建MessageConsumer
实例,则最好不要使用静态实例,这样就可以进行依赖注入,从而可以测试组件。
关于java - 我应该使在类级别定义的Executor服务实例静态吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61811409/