Внутренняя работа newFixedThreadPool

Пожалуйста, помогите мне понять внутренний поток newFixedThreadPool (или Cached)

Когда мы пишем операторы ниже, ExecutorService e = Executors.newFixedThreadPool (3);

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

до 3-х методов выполнения будут созданы три потока, когда будет вызван 4-й метод выполнения, новый поток не будет создан, но работа будет ожидать освобождения потока.

Я не понимаю этого пункта "новый поток не будет создан, но работа будет ждать, пока поток будет свободным". Что я думаю, когда runnable1 будет передан первому созданному потоку, как только метод runnable1 будет завершен, запуск Thread1 также будет завершен, thread1 не сможет вызвать метод run из runnable4. Итак, как java удается выполнить 5 Runnable всего за 3 потока.

Ответы на вопрос(2)

Ваш ответ на вопрос