【转】java定时任务接口ScheduledExecutorService
来源:互联网 发布:淘宝店铺做淘客链接 编辑:程序博客网 时间:2024/05/22 14:33
一、ScheduledExecutorService 设计思想
ScheduledExecutorService,是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,也就是说,任务是并发执行,互不影响。
需要注意,只有当调度任务来的时候,ScheduledExecutorService才会真正启动一个线程,其余时间ScheduledExecutorService都是出于轮询任务的状态。
1、线程任务
class MyScheduledExecutor implements Runnable { private String jobName; MyScheduledExecutor() { } MyScheduledExecutor(String jobName) { this.jobName = jobName; } @Override public void run() { System.out.println(jobName + " is running"); }}
2、定时任务
public static void main(String[] args) { ScheduledExecutorService service = Executors.newScheduledThreadPool(10); long initialDelay = 1; long period = 1; // 从现在开始1秒钟之后,每隔1秒钟执行一次job1 service.scheduleAtFixedRate(new MyScheduledExecutor("job1"), initialDelay, period, TimeUnit.SECONDS); // 从现在开始2秒钟之后,每隔2秒钟执行一次job2 service.scheduleWithFixedDelay(new MyScheduledExecutor("job2"), initialDelay, period, TimeUnit.SECONDS); }
ScheduledExecutorService 中两种最常用的调度方法 ScheduleAtFixedRate 和 ScheduleWithFixedDelay。ScheduleAtFixedRate 每次执行时间为上一次任务开始起向后推一个时间间隔,即每次执行时间为 :initialDelay, initialDelay+period, initialDelay+2*period, …;ScheduleWithFixedDelay 每次执行时间为上一次任务结束起向后推一个时间间隔,即每次执行时间为:initialDelay, initialDelay+executeTime+delay, initialDelay+2*executeTime+2*delay。由此可见,ScheduleAtFixedRate 是基于固定时间间隔进行任务调度,ScheduleWithFixedDelay 取决于每次任务执行的时间长短,是基于不固定时间间隔进行任务调度。
参考文献 :
http://www.ibm.com/developerworks/cn/java/j-lo-taskschedule/
- 【转】java定时任务接口ScheduledExecutorService
- java定时任务接口ScheduledExecutorService
- java定时任务接口ScheduledExecutorService
- java定时任务接口ScheduledExecutorService
- java定时任务接口ScheduledExecutorService
- java定时任务接口ScheduledExecutorService
- 定时任务接口ScheduledExecutorService
- Java定时任务接口ScheduledExecutorService代替Timer
- Java并发之定时任务接口ScheduledExecutorService
- ScheduledExecutorService执行定时任务接口
- java使用ScheduledExecutorService定时任务
- Java 定时任务 ScheduledExecutorService 的使用
- ScheduledExecutorService执行定时任务
- ScheduledExecutorService定时任务
- ScheduledExecutorService执行定时任务
- ScheduledExecutorService执行定时任务
- Java执行定时任务的方法(Timer、ScheduledExecutorService)
- Java并发定时任务调度之Timer和ScheduledExecutorService
- JSP页面以GET方式传参服务器报400
- seekbar只能拖拽禁止点击及seekbar常见问题
- MYSQL limit,offset 区别
- 在Eclipse 中配置Tomcat项目启动
- 计数排序
- 【转】java定时任务接口ScheduledExecutorService
- windows内核exploit训练项目HackSysExtremeVulnerableDriver(HEVD)-释放重引用
- 【OpenCV入门教程之九】 非线性滤波专场:中值滤波、双边滤波
- AspectJ 基于xml开发和基于注解的开发
- #734 – 在触摸事件中识别不同的手指(Recognizing Different Fingers in Touch Event Handlers)
- mysql零基础入门视频教程免费分享!很简单
- Java 中的悲观锁和乐观锁的实现
- CSS-清除浮动
- 关于java的acm代码检查评分做成的jar包