我的ThreadPoolExecutor
无法创建新线程。事实上,我编写了一个有点“hacky”的LinkedBlockingQueue
,它将接受任何任务(即它是无界的),但会调用额外的处理程序 - 在我的应用程序中,它会输出警告追踪,表示池已滞后 - 这为我提供了非常明确的信息,即TPE拒绝创建新线程,即使队列中有成千上万的条目。我的构造函数如下:
private final ExecutorService s3UploadPool =
new ThreadPoolExecutor(1, 40, 1, TimeUnit.HOURS, unboundedLoggingQueue);
为什么它没有创建新线程?