(转)关于quartz的并发问题

news/2024/5/17 16:30:22

1、quartz默认是多线程的,如果执行任务的对象不是单例的,则每个线程都会产生任务对象,这些任务对象的同时执行可能会导致并发问题

2、quartz.properties配置文件是可以自己建的,建好后通过scheduler = new StdSchedulerFactory(QUARTZ_CONFIG_PATH).getScheduler();即可生成按照自己配置文件配置的Scheduler

3、concurrent字段的含义是指如果一个线程的任务没执行完,concurrent=true表示新开一个线程,concurrent=flase表示等待当前线程执行完毕,跟单线程、多线程没关系

4、顺便说下类锁、对象锁的问题,加类锁,即静态锁,就是一个类一个锁,该类产生的所有对象在多线程访问时,同时只能一个线程访问加了synchronized的代码块,而对象锁则是,一个对象一个锁,多线程同时只有一个线程访问该对象加synchronized的代码块,跟其他对象无关,其他对象也同时可以有线程访问

 

 

 

REFS:http://blog.csdn.net/flyflyflyflyflyfly/article/details/41870489


http://www.niftyadmin.cn/n/4235277.html

相关文章

“类锁”和对象锁

假设我有一个类ClassA,其中有一个方法synchronized methodA(),那么当这个方法被调用的时候你获得就是对象锁,但是要注意,如果这个类有两个实例,比如:ClassA a new ClassA();ClassA b new ClassA();那么如…

正确使用 volatile 的模式

很多并发性专家事实上往往引导用户远离 volatile 变量,因为使用它们要比使用锁更加容易出错。然而,如果谨慎地遵循一些良好定义的模式,就能够在很多场合内安全地使用 volatile 变量。要始终牢记使用 volatile 的限制 —— 只有在状态真正独立…

(转)Java中synchronized关键字锁定的内容

synchronized关键字能锁定什么?通常我们锁定的是一个对象或者是一个代码块。其实synchronized还能锁定一些其他内容。 同步分为 同步方法 和 同步块 两种方式。 变量分为 实例变量(不带static的变量) 和 类变量(带static的变量)。 同步锁锁定的内容是什么? 无论你将…

(转)解决Quartz定时任务被触发两次的问题

摘要: 解决quartz定时任务被触发两次的问题 方法1、通过改TOMCAT的配置文件server.xml配置 方法2、先把quartz配置信息提取出来,单独存成一个文件,比如applicationContext-quartz.xml 然后修改web.xml,让web容器启动时,可以加载该…

(转) Spring的quartz定时器同一时刻重复执行二次的问题解决{经测试不可用}

最近用Spring的quartz定时器的时候,发现到时间后,任务总是重复执行两次,在tomcat或jboss下都如此。打印出他们的hashcode,发现是不一样的,也就是说,在web容器启动的时候,重复启了两个quartz线程…

(转)oracle常用函数一:数字函数

1,abs(n) 返回n的绝对值 [plain] view plaincopy SQL> select abs(-1),abs(1) from dual; ABS(-1) ABS(1) ---------- ---------- 1 1 2,ceil(n) 返回大于等于n的最小整数 [plain] view plaincopy SQL> select cei…

(转)上传文件思路

一看就是用了AJAX_UPLOAD,点图的时候就上传了吧.如果是这样的接下来你会需要:创建临时目录AJAX_UPLOAD至临时目录FORM提交时将临时目录文件mv至正式目录写个定时任务清理临时目录临时目录有很多方法,量不多的话日期目录最简单.任务清理前一天的任务临时目录的文件其实可以异步删…