Если у меня есть задание, и из этого задания я создаю несколько потоков, что происходит, когда я вызываю scheduler.shutdown(true)?
Будет ли планировщик ждать завершения всех моих потоков или нет?
Если у меня есть задание, и из этого задания я создаю несколько потоков, что происходит, когда я вызываю scheduler.shutdown(true)?
Будет ли планировщик ждать завершения всех моих потоков или нет?
Останавливает запуск триггеров планировщиком и очищает все ресурсы, связанные с планировщиком.
Параметры:
waitForJobsToComplete
- еслиtrue
планировщик не позволит этому методу вернуться, пока все текущие выполняемые задания не будут завершены.
Quarts не знает и не заботится ни о каких потоках, порожденных вашим заданием, он просто будет ждать завершения задания. Если ваша работа порождает новые потоки, а затем завершается, то с точки зрения Quartz она завершена.
Если вашему заданию необходимо дождаться завершения своих порожденных потоков, вам нужно использовать что-то вроде ExecutorService
(см. javadoc для java.util.concurrent
), что позволит потоку задания дождаться завершения своих порожденных потоков. Если вы используете необработанные потоки Java, используйте Thread.join()
.