❓ Гарантирует ли ExecutorService корректное завершение всех задач, если вызвать shutdown()?
Нет, вызов shutdown() не гарантирует завершение всех задач. Это только инициирует процесс корректного завершения, но не блокирует выполнение текущих задач. После вызова shutdown():
— Уже выполняющиеся задачи продолжат работать.
— Новые задачи приниматься не будут.
Чтобы убедиться, что все задачи завершены, нужно дополнительно использовать метод awaitTermination(). Он блокирует выполнение потока до тех пор, пока все задачи не завершатся или пока не истечет тайм-аут.
🐸
Библиотека собеса по Java