栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java-定时器(Timer定时器、ScheduledExecutorService定时器)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java-定时器(Timer定时器、ScheduledExecutorService定时器)

个人简介

  • 大家好,我是翰慧腾。一名正在努力学JAVA的大一小白,本文章为初学的笔记,希望各位多多指教。
  • 欢迎点赞+收藏+留言
  • 别慌,月亮也在大海某处迷茫李

一、定时器概述

定时器是一种控制任务延时使用,或者周期调用的技术。eg:闹钟,定时邮件发送。

二、Timer定时器

import java.util.Timer;
import java.util.TimerTask;


public class TimerDemo_0 {
    public static void main(String[] args) {
        //创建Timer定时器对象
        Timer t = new Timer();//定时器本身就是一个单线程
        //TimerTask类实现了Runnable接口,所以需要重写run方法
        t.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName()+"执行了");
            }
        },3000,2000);//第二个参数是延时调度,第三个参数是周期调度
    }
}

 Timer定时器的特点和存在问题:

1.Timer是单线程,处理多个任务按照顺序执行,存在延时与设置定时器的时间有出入。

2.可能因为其中的某个任务的异常使Timer线程死掉,从而影响后续任务的执行。

三、ScheduledExecutorService定时器

 

import java.util.Date;
import java.util.TimerTask;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;


public class TimerDemo_1 {
    public static void main(String[] args) {
        //创建ScheduledExecutorService线程池,做定时器
        ScheduledExecutorService s = Executors.newScheduledThreadPool(3);
        //开启定时任务
        s.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName()+"执行输出A"+"---"+new Date());
            }
        },0,2, TimeUnit.SECONDS);//最后一个参数是单位秒
        s.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName()+"执行输出B"+"---"+new Date());
            }
        },0,2, TimeUnit.SECONDS);
    }
}

优点:基于线程池,某个任务的执行情况不会影响其他定时任务的执行。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/831975.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号