多个线程可以同时安全地调用由StdSchedulerFactory返回的实例Scheduler上的方法吗?Quartz调度器实例是否线程安全?
12
A
回答
9
我有这个问题,所以认为我会看看源代码。假设你使用Quartz的标准配置(在RAM中存储作业和触发器而不是持久的JobStore),那么看起来Quartz是线程安全的。
挖掘源代码,您将最终到达RamJobStore,它将所有作业和触发器存储在内存中。
public void storeJobAndTrigger(SchedulingContext ctxt, JobDetail newJob,
Trigger newTrigger) throws JobPersistenceException {
storeJob(ctxt, newJob, false);
storeTrigger(ctxt, newTrigger, false);
}
在每个storeJob(..)和storeTrigger(..)的方法,存在与自己的独特的对象单独同步块用于存储作业和在一个线程安全的方式触发:
synchronized (jobLock) {
if (!repl) {
// get job group
...
}
}
和同步触发:
synchronized (triggerLock) {
...
synchronized (pausedTriggerGroups) {
...
}
}
因此,在短期,它会出现,你可以使线程安全调用调度类
0123的实例
2
This post在Terracotta网站上确认。
相关问题
- 1. Quartz Job listeners线程安全
- 2. 多线程实例访问时是否是线程池线程安全?
- 3. 这个单例实例成员是否线程安全?
- 4. hiperfifo.c示例线程是否安全
- 5. Quartz调度和线程池
- 6. 在非事件调度线程中调用fireTableRowsUpdated()是否安全?
- 7. Sqlite数据库实例是否线程安全
- 8. 在后台线程上实例化UI对象是否安全?
- 9. ValueStack容器是否线程安全?
- 10. 是否Box.add()线程安全?
- 11. 是否mysql_insert_id线程安全?
- 12. NashornScriptEngine是否线程安全?
- 13. RegExp.MatchString是否线程安全?
- 14. SeekableStream是否线程安全?
- 15. 是否log4j线程安全?
- 16. NSPasteboard是否线程安全?
- 17. LIBSVM是否安全线程
- 18. epoll是否线程安全?
- 19. 是否NotifyPropertyChanged线程安全?
- 20. 线程是否表示线程安全?
- 21. 线程安全的实例字段
- 22. NSManagedObject实例的线程安全性?
- 23. 静态实例线程安全
- 24. 的Java:线程安全类的实例
- 25. File实例线程安全吗?
- 26. 线程安全:类的实例
- 27. 部分线程安全是否使Java类线程安全?
- 28. Quartz 2.0调度程序例外
- 29. Quartz调度最大线程数属性
- 30. Quartz调度程序可以实现吗?