类 Timer:计时器
定期执行一次或重复执行指定的任务。
一个Timer对象指定一个线程,用于顺序执行所有计时器任务,任务应该迅速完成(这个任务否则会独占线程)。
线程安全,多个线程可以共享单个Timer对象而无需外部同步。
可扩展到大量同时安排的任务(存在数千个都没有问题)。
所有构造方法都启动计时器线程。
...
查看api介绍(很详细)
构造方法参数:指定是否是守护线程(否)及计时器的名称(空)。
方法:
public void schedule(TimerTask task,long delay/Date firstTime,long period)
public void scheduleAtFixedRate(TimerTask task,Date firstTime,long period)
参数包括:任务对象,第一次执行任务延迟,任务间周期延迟。
上下两个方法区别:api
new SchedulerTask() {
public void run() {
soundAlarm();
}
private void soundAlarm() {
System.out.println("Wake up! " +
"It's " + dateFormat.format(new Date()));
// Start a new thread to sound an alarm...
}
}
类 Calendar
获得此类型的一个通用的对象,其日历字段已由当前日期和时间初始化:
Calendar rightNow = Calendar.getInstance();
定期执行一次或重复执行指定的任务。
一个Timer对象指定一个线程,用于顺序执行所有计时器任务,任务应该迅速完成(这个任务否则会独占线程)。
线程安全,多个线程可以共享单个Timer对象而无需外部同步。
可扩展到大量同时安排的任务(存在数千个都没有问题)。
所有构造方法都启动计时器线程。
...
查看api介绍(很详细)
构造方法参数:指定是否是守护线程(否)及计时器的名称(空)。
方法:
public void schedule(TimerTask task,long delay/Date firstTime,long period)
public void scheduleAtFixedRate(TimerTask task,Date firstTime,long period)
参数包括:任务对象,第一次执行任务延迟,任务间周期延迟。
上下两个方法区别:api
抽象类 TimerTask
由 Timer 安排为一次执行或重复执行的任务。 必须实现run()方法new SchedulerTask() {
public void run() {
soundAlarm();
}
private void soundAlarm() {
System.out.println("Wake up! " +
"It's " + dateFormat.format(new Date()));
// Start a new thread to sound an alarm...
}
}
类 Calendar
获得此类型的一个通用的对象,其日历字段已由当前日期和时间初始化:
Calendar rightNow = Calendar.getInstance();