我在这里发现了类似的问题,但没有满意的答案。所以再改一下这个问题-

我有一项任务需要定期执行(例如间隔1分钟)。与创建一个带有睡眠无限循环的新线程相比,使用Timertask&Timer执行此操作有什么优势?

使用timertask-的代码段

TimerTask uploadCheckerTimerTask = new TimerTask(){

public void run() {

NewUploadServer.getInstance().checkAndUploadFiles();

}

};

Timer uploadCheckerTimer = new Timer(true);

uploadCheckerTimer.scheduleAtFixedRate(uploadCheckerTimerTask, 0, 60 * 1000);

使用Thread和sleep-的代码段

Thread t = new Thread(){

public void run() {

while(true) {

NewUploadServer.getInstance().checkAndUploadFiles();

Thread.sleep(60 * 1000);

}

}

};

t.start();

如果逻辑的执行花费的时间超过间隔时间,我真的不必担心是否会错过某些周期。

请对此发表评论。

更新:

最近,我发现使用Timer与Thread.sleep()之间还有另一个区别。假设当前系统时间是11:00 AM。如果由于某种原因将系统时间回滚到10:00 AM,则Timer将停止执行任务,直到达到11:00 AM,而Thread.sleep()方法将继续执行该任务而没有任何阻碍。这可能是决定这两者之间使用什么的主要决策者。

java timer和timertask_Timer和TimerTask与Java中的线程+睡眠相关推荐

  1. java多线程同步与死锁_浅析Java多线程中的同步和死锁

    Value Engineering 1基于Java的多线程 多线程是实现并发机制的一种有效手段,它允许编程语言在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间相互独立,且与进程一样拥有独立 ...

  2. Java Timer、TimerTask(定时任务)

    >java.util.Timer 一种工具,线程用其安排以后在后台线程中执行的任务.可安排任务执行一次,或者定期重复执行. TimerTask实现了Runnable接口,作为定时执行的任务载体. ...

  3. Java Timer、TimerTask

    下面内容转载自: http://blog.csdn.net/xieyuooo/article/details/8607220 其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了r ...

  4. Java Timer TimerTask示例

    Java java.util.Timer is a utility class that can be used to schedule a thread to be executed at cert ...

  5. java timer和timertask_java定时器Timer和TimerTask详解

    目录结构: Timer和TimerTask 一个Timer调度的例子 如何终止Timer线程 关于cancle方式终止线程 反复执行一个任务 schedule VS. scheduleAtFixedR ...

  6. java Timer定时器管理类

    1.java timer类,定时器类.启动执行定时任务方法是timer.schedule(new RemindTask(), seconds*1000);俩参数分别是TimerTask子类,具体执行定 ...

  7. java timer线程结束_Java线程Timer定时器用法详细总结

    定时/计划功能主要使用的就是Timer对象,它在内部还是使用多线程的方式进行处理,所以它和线程技术还是有非常大的关联. Timer类主要作用就是设置计划任务,但封装任务的类却是TimerTask类.T ...

  8. java+timer+退出,java timer 兑现在指定时间执行方法

    java timer 实现在指定时间执行方法 最近在弄一个定时发送的项目,需要定时执行方法,于是用到了Timer,但是我想要的功能网络上的资源比较少,所以自己研究了一下. 下面是我写的一些代码 imp ...

  9. JAVA Timer 定时器

    JAVA  Timer 定时器测试 MyTask.java: package com.timer; import java.text.SimpleDateFormat; import java.uti ...

最新文章

  1. linux查看log4c版本号,linux下安装log4cplus
  2. 汇编中16进制的写法问题
  3. 面试专题(Mysql及Mongodb)
  4. 统计学习笔记(4) 线性回归(1)
  5. fullpage常用配置
  6. 米粉期盼小米Civi推Pro版本:搭载骁龙870旗舰芯片
  7. ubuntu安装msql5.7
  8. 给定一个N位数,得到一个N-k位的数中最小的数
  9. sql判断字段不为null_什么是NULL值
  10. 视觉平台搭建——光源选择
  11. coco数据集大小分类_COCO数据集的简单介绍
  12. STC单片机使用RS485下载程序方法
  13. matlab里的pid参数调节,pid调节的方法
  14. 工作站 服务器 监控系统,电网工作站智能安全监控系统的设计与实现
  15. 关于适配,我想说。。。
  16. c语言 字符转二进制输出,C语言 如何把一个ASCII码转换为二进制输出?
  17. 上海升级为欧莱雅集团北亚区总部;西门子与太古可口可乐将共同打造18座数字化工厂 | 美通企业日报...
  18. 【安卓】【Dimens】适配文件创建
  19. 阿里妈妈广告进入联合早报网
  20. 离散傅立叶变换与逆变换

热门文章

  1. 阿里又要发布一个逆天的开源框架了!
  2. 对于注册中心,ZooKeeper、Eureka 哪个更合适?
  3. 熔断的意义和适用场景,你真的清楚吗?
  4. 我说 SELECT COUNT(*) 会造成全表扫描,面试官让我回去等通知
  5. 我在硅谷工作的第四年:技术是怎么把信息变现的
  6. 亿级流量压力来袭,你的网站会被击垮吗?(上篇)
  7. 如何做一次有效的绩效考核面谈?
  8. 北极星OKR斩获2021年阿里钉钉生态峰会开放平台年度银奖
  9. 技术架构委员需要关注哪些问题
  10. linux tomcat端口冲突解决