gpt4 book ai didi

java - 我应该将在类级别定义的 Executor 服务实例设为静态吗?

转载 作者:行者123 更新时间:2023-12-01 16:44:02 27 4
gpt4 key购买 nike

我有一个类,我正在使用执行器服务,线程池中有固定数量的线程,用于执行多个短期运行的任务。

我的代码是这样的:

public class MessageConsumer{

private ExecutorService executor = Executors.newFixedThreadPool(4);

main(){
.....
}

receiveMessage(String message){
try{
executor.execute(new FileWriterTask(message))
......
}catch(Exception e){
........
executor.shutDown();
.........
}
}

.....
}

如您所见,我已经在类级别定义并实例化了我的执行器服务并在方法中使用它。我已将其设为私有(private),并且无法从中访问它外部。

我想知道是否应该将我的 Executor 服务实例标记为静态,因为这意味着每个类只有一个实例。我想目前每类也只有一个。什么是好的做法?声明执行器服务的良好设计是什么?

最佳答案

如果您要创建 MessageConsumer 类的多个实例,那么您可能有一个共享 ExecutorService 实例的用例,因此您可以使其静态。

但是,如果您仅创建 MessageConsumer 的实例,则最好使用静态,这样您就可以进行依赖项注入(inject),从而拥有可测试的组件。

关于java - 我应该将在类级别定义的 Executor 服务实例设为静态吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61811409/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com