死线程是否在 ExecutionContext and/or Java 线程池中被替换?

Are dead threads replaced in an ExecutionContext and/or Java thread pool?

当一个线程因为异常而死亡时,这个线程会发生什么?如果它在线程池中,它会产生一个新线程吗?我对 scala ExecutionContext 中发生的事情很感兴趣,但是由于 ExecutionContext 包装了一个 java 线程池,我认为 Java 用户也会知道答案。

例如,如果我创建一个包含 FixedThreadPool(100) 的 ExecutionContext,如果一个线程死了,他的线程池是否会替换该线程?

线程本身死后不能产生新的线程,但是线程池可以替代它。例如,Executors.newFixedThreadPool()创建的线程池在需要时替换死线程。来自 Executors.newFixedThreadPool() 的文档:

"If any thread terminates due to a failure during execution prior to shutdown, a new one will take its place if needed to execute subsequent tasks."