Trabalho interno do newFixedThreadPool

Por favor, ajude-me a entender o fluxo interno do newFixedThreadPool (ou em cache)

Quando escrevemos as instruções abaixo, ExecutorService e = Executors.newFixedThreadPool (3);

e.execute (runaable1);e.execute (runaable2);e.execute (runaable3);e.execute (runaable4);e.execute (runaable5);

até 3 métodos de execução, três threads serão criados; quando o quarto método de execução for chamado, nenhum novo thread será criado, mas o trabalho estará aguardando a liberação de um thread.

Eu não entendo esse ponto "nenhum novo thread será criado, mas o trabalho estará aguardando que um thread seja liberado". o que eu acho que quando runnable1 será dado ao primeiro thread criado, uma vez que o método run do runnable1 será concluído, o run do Thread1 também será finalizado, o thread1 não poderá chamar o método run do runnable4. Então, como o java consegue executar 5 Runnable com apenas 3 threads.

questionAnswers(2)

yourAnswerToTheQuestion