yxhxj2006

常用链接

统计

最新评论

Java中定时器

对于开发游戏项目的同胞来说,Timer 这个东西肯定不会陌生,今天放假闲来无事,对以前自己经常使用的定时进行了一番小小的总结!没有写具体实现的原理,只是列举出了其中的四种比较常见的使用方法,相对而言,所以只要按照其所列举的例子仿照即可!

import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class TimeTest {
    
public static void main(String[] args) {
        timer1();
        
//timer2();
        
//timer3();
        
//timer4();
    }


    
// 第一种方法:设定指定任务task在指定时间time执行 schedule(TimerTask task, Date time)
    public static void timer1() {
        Timer timer 
= new Timer();
        timer.schedule(
new TimerTask() {
            
public void run() {
                System.out.println(
"-------设定要指定任务--------");
            }

        }
2000);// 设定指定的时间time,此处为2000毫秒
    }


    
// 第二种方法:设定指定任务task在指定延迟delay后进行固定延迟peroid的执行
    
// schedule(TimerTask task, long delay, long period)
    public static void timer2() {
        Timer timer 
= new Timer();
        timer.schedule(
new TimerTask() {
            
public void run() {
                System.out.println(
"-------设定要指定任务--------");
            }

        }
10005000);
    }


    
// 第三种方法:设定指定任务task在指定延迟delay后进行固定频率peroid的执行。
    
// scheduleAtFixedRate(TimerTask task, long delay, long period)
    public static void timer3() {
        Timer timer 
= new Timer();
        timer.scheduleAtFixedRate(
new TimerTask() {
            
public void run() {
                System.out.println(
"-------设定要指定任务--------");
            }

        }
10002000);
    }

    
    
// 第四种方法:安排指定的任务task在指定的时间firstTime开始进行重复的固定速率period执行.
    
// Timer.scheduleAtFixedRate(TimerTask task,Date firstTime,long period)
    public static void timer4() {
        Calendar calendar 
= Calendar.getInstance();
        calendar.set(Calendar.HOUR_OF_DAY, 
12); // 控制时
        calendar.set(Calendar.MINUTE, 0);       // 控制分
        calendar.set(Calendar.SECOND, 0);       // 控制秒

        Date time 
= calendar.getTime();         // 得出执行任务的时间,此处为今天的12:00:00

        Timer timer 
= new Timer();
        timer.scheduleAtFixedRate(
new TimerTask() {
            
public void run() {
                System.out.println(
"-------设定要指定任务--------");
            }

        }
, time, 1000 * 60 * 60 * 24);// 这里设定将延时每天固定执行
    }

}

posted on 2012-08-01 17:36 奋斗成就男人 阅读(1019) 评论(1)  编辑  收藏

评论

# re: Java中定时器[未登录] 2012-08-02 20:36 javaer

如果是JDK1.5以上还是建议用Executors.newScheduledThreadPool(size)这个比较好  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: