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.概要性描述。