最近在看到一个Timer的类,很想了解一下它。就去search了一下.写游戏经常会出现倒计时多少秒,java就是用这个写的,也有些不是用thread也可以.一般用计时器做什么??
“实现内部办公系统与外部网站一体化的时候,最重要的步骤就是从OA系统读取数据,并且根据网站模板生成最终的静态页面。这里就需要一个定时任务,循环的执行。” 这是一种情况吧,我这个需求是一个游戏需要从sever与客户端同步执行计时的动作。服务端查询数据描述然后返回一个true,客户端根据true,false执行读秒。这样类似同步执行了.
Timer.schedule(TimerTask task, long delay) 是Timer的一个方法,
它的注释是:"Schedules the specified task for execution after the specified delay".大概意思是:延迟delay后执行指定的任务,但不是重复执行。
Timer.schedule(TimerTask task, long delay, long period)是一个重载方法.
它的注释是:Schedules the specified task for repeated fixed-delay execution, beginning after the specified delay.大概意思是:指定任务延迟delay开始时间后,反复的执行period固定时间,简单的说就是重复执行.
我的测试代码:
public class apps {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StdBaccarat stdBaccarat=new StdBaccarat(null);
Timer timer = new Timer();
timer.schedule(new ddd(10,timer),0,1000);
System.out.println("执行完毕.....");
}
}
计数器类:
public class ddd extends TimerTask {
private Timer timer;
private int num;
public ddd(int n,Timer tmer)
{
num=n;
timer=tmer;
}
@Override
public void run() {
// TODO Auto-generated method stub
num--;
//System.out.println("--");
System.out.println("还有 "+num+" 秒");
if(num <=0)
{
System.out.println("结束数秒.....");
timer.cancel();
}
}