定时任务为什么不用Timer
来源:互联网 发布:vb combo1 编辑:程序博客网 时间:2024/05/01 18:16
在做定时任务的时候,有的同学可能能会用到Timer这个定时任务的辅助类,
但是使用它会有潜在的风险,风险如下,
(1)时间计算不准确问题
因为Timer是以绝对时间计算定时任务的,会受到系统时间的影响,如果在任务执行期间,更改了系统时间,那么会
导致时间计算不准确问题,导致任务没用按找预定的时间执行。
(2)只能单任务执行
简单讲就是,只能一次执行一个任务,如果前一个任务没有执行完成,后一个任务是无法并行执行的,只能等待前一个任务执行完成
才能执行。也有可能会出现这样的结果,前一个任务执行的时间太长,后几个任务时间短,可能在一个时间段内执行了多个任务,任务又
没有按照我们要执行的时间执行。
(3)非检查异常导致异步任务终止
Timer当在执行的过程中遇到非检查异常的时候,会导致本次任务失败,并且接下来的任务也无法被执行,Timer将会终止执行,这不是
我们要的结果,我们需要一套恢复机制。
Java5以后可以用下面的这个类来替代Time,并且解决了以上三个问题
java.util.concurrent.ScheduledThreadPoolExecutor
那么在Android上呢,可以用 java.util.concurrent.ScheduledThreadPoolExecutor,也可以用Handler机制做,
但是不建议使用Timer
0 0
- 定时任务为什么不用Timer
- android定时任务为什么不用Timer
- 【Android】 定时任务为什么不用Timer
- java Timer 定时任务
- Java定时任务Timer
- JAVA定时任务Timer
- timer定时任务
- 定时任务 Timer
- timer定时任务
- Timer定时任务
- Java 定时任务Timer
- Timer 定时任务
- Java定时任务Timer
- TimerTask、Timer 定时任务
- 定时任务--Timer()实现
- java Timer 定时任务
- java 定时任务Timer
- 定时任务--Timer
- 数据库设计2
- 【三层架构】一个aspx页面读取server 2008不同表里面的数据
- 小谈二分法 三分法
- c#数组浅谈
- Linux驱动学习——简单字符设备
- 定时任务为什么不用Timer
- Vmware系统时间不同步解决方法
- SVM算法入门
- 内存那点儿事儿(一)
- 按照字典排序,生成1-n队列(java实现)
- poj3349--Hash
- 百度,360 你们到底谁是骗子?
- 数据库设计3
- 数组与集合的使用区别