*(1) Timer延时任务
**缺陷:**1、当一个Timer指定多个TimerTask时,一个TimerTask的延时可能会影响后续TimerTask的运行

  • 2、当TimerTask抛出未检查异常,Timer线程将被关闭,同时也可能影响调用线程。
  • 3、基于服务器绝对时间(基于绝对时间为什么是缺点??)

public class TimerTest {public static void main(String[] args) {Timer timer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {System.out.println("开始第一个任务");try {Thread.sleep(5000);} catch(Exception e) {e.printStackTrace();}if (true) {//throw new RuntimeException("error");   // 解除注释 程序运行到此处将结束Timer线程,并抛出异常}System.out.println("结束第一个任务");}}, 1000);timer.schedule(new TimerTask() {@Overridepublic void run() {System.out.println("开始第二个任务");try {Thread.sleep(5000);} catch(Exception e) {e.printStackTrace();}System.out.println("结束第二个任务");}}, 1000);System.out.println("主线程结束!");  // 因为Timer线程非后台线程,所以主线程执行完毕后jvm不会结束。}
}

(2)ScheduledThreadPool执行多线程延时任务

/** * ScheduledThreadPool执行延时任务 * 多线程执行多延时任务 * 单线程执行多延时任务 * @author yfzhangbin */
public class SchduleTest {  public static void main(String[] args) {  ScheduledExecutorService threadPool = Executors.newScheduledThreadPool(2);  ScheduledExecutorService singleThread = Executors.newSingleThreadScheduledExecutor();  threadPool.schedule(new MyScheduledTask("t1"), 1, TimeUnit.SECONDS);  threadPool.schedule(new MyScheduledTask("t2"), 1, TimeUnit.SECONDS);   // t1、t2在多个线程执行t1延时不会影响t2  singleThread.schedule(new MyScheduledTask("t3"), 1, TimeUnit.SECONDS);  singleThread.schedule(new MyScheduledTask("t4"), 1, TimeUnit.SECONDS); // t3、t4 在同一线程执行t3延时会影响 t4  threadPool.shutdown();  singleThread.shutdown();  }  }  class MyScheduledTask implements Runnable {  private String tname;  public MyScheduledTask(String tname) {  this.tname = tname;  }  @Override  public void run() {  System.out.println(tname+"任务开始执行");  try {  Thread.sleep(3000);  } catch (InterruptedException e) {  e.printStackTrace();  }  System.out.println(tname+"任务执行完毕!!!");  }  }

Timer延时任务和ScheduledThreadPool执行延时任务相关推荐

  1. 延时消息_Handler的消息延时是怎么实现的

    消息延时做了什么特殊处理? 是发送延时,还是消息处理延时? 延时的精度如何? 通常我们使用Handler的消息延时都是调用sendMessageDelayed函数实现的,其中delayMillis是需 ...

  2. c语言延时函数delay_STM32中精确延时函数的实现

    在与传感器或者模块的总线进行通信的时候,常常需要使用到精确延时,一般我们会封装几个常用延时函数,下面我们以STM32F103芯片为例,详细介绍一下STM32下一种精确延时函数的实现: 时钟树 下图中紫 ...

  3. 2毫秒c51汇编语言延时函数,单片机精确毫秒延时函数

    实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循环体进行. 今天主要介绍软件延时以及单片机精确毫秒 ...

  4. qt延时 QT中简单的延时办法

    来自 http://www.qtgtk.com/qt延时-qt中简单的延时办法/ QEventLoop eventloop; QTimer::singleShot(time, &eventlo ...

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

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

  6. linux 内核编程 延时函数,linux中内核延时编程

    #include //定义使用定时来计时的宏 #ifndef SLEEP_MILLI_SEC #define SLEEP_MILLI_SEC(nMilliSec)\ do { \ long timeo ...

  7. RocketMQ 延时消息的使用和延时级别的配置

    1. 延时消息的使用场景 比如电商里,提交了一个订单就可以发送一个延时消息,1h后去检查这个订单的状态,如果还是未付款就取消订单释放库存. 2. 延时消息的使用限制 // org/apache/roc ...

  8. js延时函数_js自执行函数分享

    自执行函数是从哪里了解到的呢,从学习延时器settimeout(fn,time)的时候 测试一个for循环里面加一个延时器,想要每隔一秒输出一次i for(var i=0;i<6;i++){ s ...

  9. 微信小程序 延时执行 延时跳转

    在微信小程序开发中,经常会遇到这样的需求:当用户操作后,我们需要先提醒用户操作成功,然后再进行页面跳转,这时候我们就需要用到setTimeout()来实现. success(res){wx.showT ...

最新文章

  1. 100内奇数之和流程图_IATF 16949体系资料之过程流程图,收藏备用!
  2. 排序算法总结之归并排序
  3. 读书笔记-恰到好处的幸福
  4. iOS10 UI教程视图的边界与视图的框架
  5. PAT甲级1132 Cut Integer:[C++题解]
  6. sts引入lombok_Spring Boot中lombok的安装与使用详解
  7. 给websocket加入心跳包防止自动断开连接
  8. AK的故事之英语学习篇(mistake)
  9. WIFI sniffer log抓包教程
  10. 文件快速拷贝工具大比拼,谁是最快的复制软件
  11. 嵌入式思维 、不深不浅的理解
  12. python股票预测_利用Keras长短期记忆(LSTM)模型预测股票价格
  13. iOS中常用的几种延时加载/执行的处理办法
  14. ologit 平行线检验 brant踩坑历程not all independent variables can be retained in binary logits brant test cann
  15. python绘制布林带
  16. 电脑休眠、睡眠、待机的区别
  17. python for ArcGIS 绘制南京市板块地图
  18. SQL系列(三)SQL使用的旁枝末节
  19. 年薪50万的AI和年薪80万的区块链,哪一个更适合你?
  20. ipad协议/8.0.37/个微协议

热门文章

  1. java inet aton_IP处理函数inet_aton()和inet_ntoa()使用说明
  2. 华硕笔记本装固态,清灰,装win10教程
  3. DFS DBS算法
  4. 单点登录系统的设计与实现方案
  5. 数据库系统-关系模式
  6. AWS宣布Amazon EKS在AWS中国(宁夏)区域和AWS中国(北京)区域正式商用
  7. 线性表之线性表与数组的区别
  8. 【American English】美式发音,英语发音,美国音音标列表及发音
  9. RRT_star MATLAB
  10. EXCEL动态数据透视表