是否在ExecutionContext和/或Java线程池中替换死线程?

是否在ExecutionContext和/或Java线程池中替换死线程?,java,multithreading,scala,threadpool,executioncontext,Java,Multithreading,Scala,Threadpool,Executioncontext,当一个线程由于异常而死亡时,该线程会发生什么情况?如果它在线程池中,是否会产生新线程?我对scala ExecutionContext中发生的事情感兴趣,但由于ExecutionContext包装了java线程池,我认为java用户也会知道答案 例如,如果我创建了一个包含FixedThreadPool(100)的ExecutionContext,如果一个线程死亡,线程池是否会替换该线程?线程死亡后,线程本身无法生成新线程,但线程池可以替换它。例如,Executors.newFixedThread

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


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

线程死亡后,线程本身无法生成新线程,但线程池可以替换它。例如,
Executors.newFixedThreadPool()
创建的线程池在需要时替换死线程。从
Executors.newFixedThreadPool()
的文档中:

“如果任何线程在执行之前由于失败而终止 关闭,如果需要执行,将替换一个新的 后续任务。”


如果任何线程在关机前的执行过程中由于故障而终止,则在需要执行后续任务时,将替换一个新线程。此新线程是从第一个线程开始执行任务,还是在死线程停止时继续执行任务?