我想创建一个 ExecutorService 对象而不使用
newSingleThreadExecutor(),
Executors.newFixedThreadPool()
并且,
Executors.newScheduledThreadPool()
如何做到这一点?这是我第一次使用 ExecutorService,在 google 上搜索了很多以找到如何在不定义任何“线程数”的情况下实例化它,但失败了。
最佳答案
java.util.concurrent.Executors
中的大多数工厂方法返回 ThreadPoolExecutor 的任一实例或其子项 ScheduledThreadPoolExecutor 。如果您检查 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>());
}
关于java - 需要创建ExecutorService的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15472025/