Quartz scheduler shutdown(true)等待从运行Jobs开始的所有线程停止?

时间:2011-01-10 16:36:34

标签: quartz-scheduler

如果我有一份工作,那么我会创建一些线程,当我调用scheduler.shutdown(true)时会发生什么?

调度程序是否会等待我的所有线程完成?

1 个答案:

答案 0 :(得分:4)

Quartz 1.8.1 API docs

  

暂停调度程序触发触发器,并清除与调度程序关联的所有资源。

     

参数:   waitForJobsToComplete - 如果true调度程序将不允许此方法返回,直到所有当前正在执行的作业完成。

Quarts既不知道也不关心你的工作产生的任何线程,它只会等待工作完成。如果你的工作产生新线程然后退出,那么就Quartz而言,它已经完成了。

如果你的工作需要等待它的衍生线程完成,那么你需要使用ExecutorService之类的东西(参见java.util.concurrent的javadoc),这将允许作业线程等待它产生的线程来完成。如果您使用的是原始java线程,请使用Thread.join()