我想在不使用的情况下创建 ExecutorService 的对象
newSingleThreadExecutor(),
Executors.newFixedThreadPool()
和,
Executors.newScheduledThreadPool()
怎么做?这是我第一次使用 ExecutorService,谷歌搜索了很多以找到它是如何在没有定义任何“线程数”的情况下实例化的,但失败了。
我想在不使用的情况下创建 ExecutorService 的对象
newSingleThreadExecutor(),
Executors.newFixedThreadPool()
和,
Executors.newScheduledThreadPool()
怎么做?这是我第一次使用 ExecutorService,谷歌搜索了很多以找到它是如何在没有定义任何“线程数”的情况下实例化的,但失败了。
大多数工厂方法返回ThreadPoolExecutor或其子ScheduledThreadPoolExecutorjava.util.concurrent.Executors
的实例。如果您检查 javadoc 的ExecutorService,那么您会发现这些是众所周知的实现。
Executors.newCachedThreadPool()
如果您查看java.util.concurrent.Executors的源代码,可以避免打电话给您:
public static ExecutorService newCachedThreadPool() {
return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
60L, TimeUnit.SECONDS,
new SynchronousQueue<Runnable>());
}
那么为什么你不想使用工厂方法呢?
如果您创建一个执行器对象,您可以轻松地自己创建对象,就像这个工厂方法(已经)在做的那样:
public static ExecutorService newCachedThreadPool() {
return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
60L, TimeUnit.SECONDS,
new SynchronousQueue<Runnable>());
}