java - 需要创建ExecutorService的对象

标签 java multithreading jakarta-ee synchronization

我想创建一个 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/

相关文章:

java - 类声明导致空指针异常

c# - 取消 BlockingCollection.GetConsumingEnumerable() 并处理剩余的内容

c++ - 如何使用线程同时下载和转换二进制文件?

java - 检索 java ee 5 中已定义角色的列表

javascript - 如何保证一个类永远不会暴露在 Vaadin 客户端

java - 如何在 JPanel 中刷新/重新加载图像

java - 如果我未安装 Axis,则不明白它是如何工作的?

java - java类如何根据需要发送其参数?

ios - 核心数据锁因为合并?

spring - @ExceptionHandler + @ResponseStatus