TimerTask抽象类

package java.util;

//抽象类:一种任务,可由定时器安排一次或重复执行,实现了Runnable接口
public abstract class TimerTask implements Runnable {
    //    此对象用于控制对TimerTask内部的访问。
    final Object lock = new Object();
    //任务状态
    int state = VIRGIN;
    //尚无计划执行此任务
    static final int VIRGIN = 0;

    //计划执行此任务。如果是不重复的任务,
    // 它还没有被执行。
    static final int SCHEDULED = 1;

    //非重复任务正在被执行,但没有被取消
    static final int EXECUTED = 2;
    //此任务被取消
    static final int CANCELLED = 3;

    //此任务的下一次执行时间,单位为毫秒
    //假设此任务已计划执行。
    //对于重复任务,此字段在每次任务执行之前更新。
    long nextExecutionTime;

    //    重复任务的周期(毫秒)。正值表示固定速率执行。负值表示固定延迟执行,值0表示不重复的任务。
    long period = 0;

    //创建一个TimerTask
    protected TimerTask(){
    }

    //执行
    public abstract void run();

    //取消此任务
    public boolean cancel(){
        synchronized (lock) {
            boolean result = (state == SCHEDULED);
            state = CANCELLED;
            return result;
        }
    }

    //    返回最近一个实际执行此任务。(如果调用时,任务正在执行时,返回值是正在执行的任务的执行时间。
    public long scheduledExecutionTime(){
        synchronized (lock) {
            return (period < 0 ? nextExecutionTime + period
                    : nextExecutionTime - period);
        }
    }
}
Java之uitil包源码阅读 文章被收录于专栏

源码阅读是程序员必不可少的,本专栏记录本人阅读java源码笔记,与阅读此专栏的同道共同进步。 本专栏以字典序对源码进行阅读注释,主要工作:1.去除源码中冗长的英语注释,用简短的注释代替;2.对关键语句和算法予以说明。3.概要性描述。

全部评论

相关推荐

风流倜傥从哥:这个项目确实太简单了有点,做点大项目。。。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务