结论:发生异常的线程被回收,重新填充一个新的线程
证明:
ExecutorService pool = Executors.newFixedThreadPool(2);
pool.execute(() -> {
try {
Thread.sleep(2000);
System.out.println(Thread.currentThread().getId()+":a");
} catch (InterruptedException e) {
e.printStackTrace();
}
});
pool.execute(() -> {
System.out.println(Thread.currentThread().getId()+":b");
throw new RuntimeException();
});
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
pool.execute(() -> {
System.out.println(Thread.currentThread().getId()+":c")