byl*_*nan 11 java multithreading executorservice
我想在整个应用程序中使用相同的线程池.为此,我可以让ExecutorService静态和全局,这样我可以调用ThreadUtil.executorService得到ExecutorService,当我需要它.
public class ThreadUtil {
public static final ExecutorService executorService = Executors.newCachedThreadPool();
}
Run Code Online (Sandbox Code Playgroud)
可以像这样实例化多个线程池吗?
另外,我的应用程序是TCP服务器.如果我不知道游泳池应该有多大,可以简单地使用newCachedThreadPool吗?
当在程序中的任何地方使用具有相同属性的实例时,将其声明为 static 和 final 而不是每次都重新创建实例是合乎逻辑的,但我个人会选择单例模式而不是直接公开访问实例。
至于您的第二个查询,我认为没有任何问题。文档的第一句话newCachedThreadPool说
创建一个线程池,根据需要创建新线程
由于您不知道将创建多少个线程,因此这是最合乎逻辑的选择。
请注意,newCachedThreadPool当旧线程可用时将重新使用它们以提高性能。
| 归档时间: |
|
| 查看次数: |
7401 次 |
| 最近记录: |