问题
如何实例化ExecutorService
答案
ExecutorService的创建
- 使用工厂方法创建ExecutorService
创建一个ExecutorService
最简单的方法是使用Executors
类提供的工厂方法,例如如下代码:
ExecutorService executor = Executors.newFixedThreadPool(10);
还有其他工厂方法用于创建一个ExecutorService
来满足特定的场景,要选择一个最适合的方法.
- 直接创建ExecutorService
ExecutorService
是一个接口,意味着我们可以使用它的任何一个实现类,我们可以选择不调用工厂方法(工厂方法的内部也是用了这些JDK内置的实现类),而直接使用JDK中的一些实现类或者自己去实现一个类.例如,ThreadPoolExecutor
是ExecutorService
的一个实现类,提供了一些构造器来创建一个带有线程池的ExecutorService
.例如
ExecutorService executorService =
new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>());
这个方法也就是工厂方法Executors.newFixedThreadPool(int nThreads)
的内部实现.大多情况下,我们只需要使用JDK内置的实现类即可.
网友评论