我有一个类,其中我在线程池中使用固定数量的线程使用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/

10-11 02:36