我是靠谱客的博主 失眠画笔,最近开发中收集的这篇文章主要介绍Timer和ScheduledExecutorService,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

介绍

Timer和ScheduledExecutorService,可以定时周期性的执行任务
Timer、TimerTask,是被synchronized修饰的线程安全的类

使用ScheduledExecutorService代替Timer吧
多线程并行处理定时任务时,Timer运行多个TimeTask时,只要其中之一没有捕获抛出的异常,其它任务便会自动终止运行,使用ScheduledExecutorService则没有这个问题。

代码

package com.aware;

import java.util.TimerTask;

/**
 * @author yanyugang
 * @description 任务一
 * @date 2020-01-18 9:08
 */
public class MyTask extends TimerTask {
    @Override
    public void run(){
        System.out.println("com.aware.MyTask run");
    }
}

package com.aware;

import java.util.TimerTask;

/**
 * @author yanyugang
 * @description 任务二
 * @date 2020-01-18 9:08
 */
public class MyTask2 extends TimerTask {
    @Override
    public void run(){
        System.out.println("com.aware.MyTask2 run");
    }
}

public static void main(String[] args){
    Timer timer=new Timer();
    timer.schedule(new MyTask(), 1000, 2000);
    timer.schedule(new MyTask2(), 1000, 2000);


    ScheduledExecutorService executorService =  Executors.newScheduledThreadPool(10);

    executorService.scheduleAtFixedRate(new MyTask(), 1, 2, TimeUnit.SECONDS);
    executorService.scheduleAtFixedRate(new MyTask2(), 1, 2, TimeUnit.SECONDS);
}

最后

以上就是失眠画笔为你收集整理的Timer和ScheduledExecutorService的全部内容,希望文章能够帮你解决Timer和ScheduledExecutorService所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部