在做定时任务的时候,有的同学可能能会用到Timer这个定时任务的辅助类,

可是使用它会有潜在的风险,风险例如以下,

(1)时间计算不准确问题

    由于Timer是以绝对时间计算定时任务的,会受到系统时间的影响,假设在任务运行期间。更改了系统时间,那么会

导致时间计算不准确问题。导致任务没用按找预定的时间运行。

(2)仅仅能单任务运行

    简单讲就是。仅仅能一次运行一个任务,假设前一个任务没有运行完毕。后一个任务是无法并行运行的,仅仅能等待前一个任务运行完毕

才干运行。也有可能会出现这种结果。前一个任务运行的时间太长,后几个任务时间短,可能在一个时间段内运行了多个任务,任务又

没有依照我们要运行的时间运行。

(3)非检查异常导致异步任务终止

    Timer当在运行的过程中遇到非检查异常的时候,会导致本次任务失败,而且接下来的任务也无法被运行。Timer将会终止运行,这不是

我们要的结果。我们须要一套恢复机制。





Java5以后能够用以下的这个类来替代Time,而且攻克了以上三个问题

  java.util.concurrent.ScheduledThreadPoolExecutor





那么在Android上呢。能够用 java.util.concurrent.ScheduledThreadPoolExecutor。也能够用Handler机制做,

可是不建议使用Timer

定时任务为什么不用Timer的更多相关文章

  1. 时间轮算法在Netty和Kafka中的应用,为什么不用Timer、延时线程池?

    大家好,我是yes. 最近看 Kafka 看到了时间轮算法,记得以前看 Netty 也看到过这玩意,没太过关注.今天就来看看时间轮到底是什么东西. 为什么要用时间轮算法来实现延迟操作? 延时操作 Ja ...

  2. 定时任务:Java中Timer和TimerTask的使用

    java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks. 一个TimerTask实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内,TimerT ...

  3. 【定时任务】Timer

    Java原生api Timer类就可以实现简单的定时任务.下面将简单介绍一下Timer. 一.使用 Timer 实现定时任务 具体代码如下. 可以看到我们主要是分三步进行的 1.new Timer() ...

  4. 线程 Timer TimerTask 计时器 定时任务 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  5. java定时任务Timer与ScheduledExecutorService<转>

    在我们编程过程中如果需要执行一些简单的定时任务,无须做复杂的控制,我们可以考虑使用JDK中的Timer定时任务来实现.下面LZ就其原理.实例以及Timer缺陷三个方面来解析java Timer定时器. ...

  6. 【Python】模块学习之Timer定时任务,递归定时自调获取博客浏览量

    Timer定时任务 下面是Timer函数的官方doc介绍信息 """ Call a function after a specified number of second ...

  7. 如何用 Java 实现 Web 应用中的定时任务?

    定时任务,是指定一个未来的时间范围执行一定任务的功能.在当前WEB应用中,多数应用都具备任务调度功能,针对不同的语音,不同的操作系统, 都有其自己的语法及解决方案,windows操作系统把它叫做任务计 ...

  8. 如何用 Java 实现 Web 应用中的定时任务

    定时任务,是指定一个未来的时间范围执行一定任务的功能.在当前WEB应用中,多数应用都具备任务调度功能,针对不同的语音,不同的操作系统, 都有其自己的语法及解决方案,windows操作系统把它叫做任务计 ...

  9. 详解java定时任务

    在我们编程过程中如果需要执行一些简单的定时任务,无须做复杂的控制,我们可以考虑使用JDK中的Timer定时任务来实现.下面LZ就其原理.实例以及Timer缺陷三个方面来解析JavaTimer定时器. ...

随机推荐

  1. 字符流、字节流、二进制及其在HTTP协议传输

    一.二进制.字节.字符流概念 字(Byte)节是长度单位.位(bit)也是长度单位.计算机通信和存储的时候都是以010101这样的二进制数据为基础的二进制数有两个特点:它由两个基本字符0,1组成,二进 ...

  2. 爬虫—分析Ajax爬取今日头条图片

    以今日头条为例分析Ajax请求抓取网页数据.本次抓取今日头条的街拍关键字对应的图片,并保存到本地 一,分析 打开今日头条主页,在搜索框中输入街拍二字,打开开发者工具,发现浏览器显示的数据不在其源码里面 ...

  3. Vue2.0框架搭建基础操作及目录说明

    一.概述 vue.js是一套构建用户界面的渐进式框架.vue采用自底向上增量开发的设计.vue的核心库只关心视图层,非常容易学习,非常容易与其它库和已有项目整合.vue完全有能力驱动采用单文件组件和v ...

  4. 移动端web开发初探之Vuejs的简单实战

    这段时间在做的东西,是北邮人论坛APP的注册页.这个注册页是内嵌的网页,因为打算安卓和IOS平台同时使用.因此实际上就是在做移动端的web开发了. 在这过程中遇到了不少有意思的东西. DEMO的git ...

  5. 【SQL】SELECT 语句

    1.1 SELECT基本语法: Select * |{[distinct]colum|expression [alias],…} from table; 1.2 查询当前用户所有在用的表及视图: HR ...

  6. RAID5存储上parted进行分期及UUID对应关系

    #parted [设备] [命令 [参数]]命令功能: 新增分区:mkpart [primary|logical|extended] [ext3|vfat] 开始 结束 分区表:print 删除分区: ...

  7. RedHat/centOS 部分字符处理

    sed -i '/^$/d' filename #删除空行sed -i '/tablename/d' filename #删除含有匹配字符串的行sed -i '/_c1/d' filename #删除 ...

  8. Redis 四:存储类型之散列类型

    1.散列类型表达方式简介: =========================================== 键 字段 值 =================================== ...

  9. HDL之Bitwise operation

    1 Verilog 1.1 Bitwise operator Bitwise operators perform a bit wise operation on two operands. They ...

  10. OpenStack、KVM、Docker——Docker之后还需要OpenStack吗?

    原文链接:http://news.csdn.net/article_preview.html?preview=1&reload=1&arcid=2823129 Docker从一个新兴的 ...