如果我有一份工作,那么我会创建一些线程,当我调用scheduler.shutdown(true)时会发生什么?
调度程序是否会等待我的所有线程完成?
答案 0 :(得分:4)
暂停调度程序触发触发器,并清除与调度程序关联的所有资源。
参数:
waitForJobsToComplete
- 如果true
调度程序将不允许此方法返回,直到所有当前正在执行的作业完成。
Quarts既不知道也不关心你的工作产生的任何线程,它只会等待工作完成。如果你的工作产生新线程然后退出,那么就Quartz而言,它已经完成了。
如果你的工作需要等待它的衍生线程完成,那么你需要使用ExecutorService
之类的东西(参见java.util.concurrent
的javadoc),这将允许作业线程等待它产生的线程来完成。如果您使用的是原始java线程,请使用Thread.join()
。