JAVA定时器 (Timer TimerTask)学习

原创 2013年12月04日 09:49:23

Timer类,是一种工具类,可安排任务执行一次或者定期重复重复执行

 

入门例子一:

 

public class OneTime {
	public static void main(String[] args) {
		Timer timer = new Timer();
		TimerTask task = new MyTimerTask();
		Date date = new Date(System.currentTimeMillis() + 3000);
		//过三秒之后执行任务
		timer.schedule(task, date);
	}
}

public class MyTimerTask extends TimerTask{
	@Override
	public void run() {
		System.out.println("MyTimerTask");
	}
}

 

上面的例子可以合并为一个

 

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

public class TimerTaskDemo {
	
	public static void main(String[]args){
		Timer timer = new Timer();
		timer.schedule(new TimerTask() {
			@Override
			public void run() {
				System.out.println("MyTimerTask");
			}
		}, new Date(System.currentTimeMillis() + 3000));
	}
	
}

  

备注:使用定时器让我联想到使用线程,只是显示是继承Thread类或者是Runnable接口,而定时器是继承TimerTask这个抽象类(必须要实现run()方法)

 

 

定时器取消的例子:

 

public class RepeatDo { 
	public static void main(String[] args) { 
	Timer timer=new Timer(); 
	//创建一个计时器过两秒后每隔3S 执行一次操作 
	timer.schedule(new MyTimerTask1(1,timer), 2000, 1L*3000); 
	} 
} 

public class MyTimerTask1 extends TimerTask{
	int round_id;
	Timer timer;
	public MyTimerTask1(int round,Timer timer) {
		this.round_id = round;
		this.timer = timer;
	}
	@Override
	public void run() {
		this.round_id++;
		System.out.println("repeat : " + this.round_id);
		//如果重复了4次之后就取消定时器
		if(this.round_id == 5){
			//根据传递过来的timer取消定时功能
			timer.cancel();
		}
	}
}

 

 

传统定时器技术 Timer and TimerTask

本文为张孝祥java并发课程的学习笔记。 java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks。 一个TimerTask实际上就是一个拥有run方法的类,需要定时...
  • dlf123321
  • dlf123321
  • 2015年01月15日 15:29
  • 903

Android中定时器Timer和TimerTask的启动,停止,暂停,继续等操作实例

下面是一个在Android中使用定时器Timer和TimerTask的启动,停止,暂停,继续等操作的demo。 需要注意的问题主要有两点: 1、Timer和TimerTask在调用cancel()...
  • dj0379
  • dj0379
  • 2016年03月13日 14:44
  • 21169

Java—Timer和TimerTask详解(常用API)

以下内容根据 The JavaTM Tutorial 和相关API doc翻译整理,以供日后参考: 1.概览 Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行...
  • weiguishan
  • weiguishan
  • 2015年02月23日 12:32
  • 1667

用ServletContextListener和Task,Timer实现WEB服务器的定时操作

有个项目需要在WEB服务器上实现定时从不同的数据库中取出更新以后的数据,提供给客户端JS读取,一开始考虑的是用Servlet来实现,在Servlet里面来开线程处理这个问题。后来,找到了这些资料: ...
  • fishineye
  • fishineye
  • 2016年08月10日 10:32
  • 964

Android 定时器的实现方式(TimerTask、Handler)及 Handler使用解析

一、Handler的定义:主要接受子线程发送的数据, 并用此数据配合主线程更新UI。对于线程的控制,使用Handler可以对运行在不同线程中的多个任务进行排队,并使用Message和Runnable对...
  • a78270528
  • a78270528
  • 2015年10月27日 15:19
  • 11145

Spring定时器在SSH框架中的应用之---Java Timer调度器

在系统应用中,我们有很多的工作是需要系统自己来做的。在Spring中针对此需求有两种流行配置,一是Java的Timer类;二是Quartz调度器。 下面来介绍下第一种配置:Java的Timer类...
  • w2222288
  • w2222288
  • 2015年05月05日 17:53
  • 685

Android销毁线程的方式,Timer(定时器)的销毁

在Android开发中,经常会用到线程和Timer,如果没有主动关闭它们,当程序结束时,线程并没有被销毁,而是一直在后台运行着,当我们重新启动应用时,又会重新启动一个线程,周而复始,你启动应用次数越多...
  • lienyin
  • lienyin
  • 2015年12月03日 10:38
  • 5039

java自带定时任务功能(Timer&TimerTask)

java自带定时任务功能(Timer&TimerTask)介绍开发中我们经常会有这样的业务,比如在凌晨的时候跑一个任务或者指定在某个时刻跑任务,这就是所谓的定时任务。通常定时任务也是异步处理的,此时我...
  • nicewuranran
  • nicewuranran
  • 2016年07月24日 23:20
  • 1706

Android中定时器Timer和TimerTask的启动,停止,暂停,继续等操作实例

下面是一个在Android中使用定时器Timer和TimerTask的启动,停止,暂停,继续等操作的demo。 需要注意的问题主要有两点: 1、Timer和TimerTask在调用cancel()...
  • u011164565
  • u011164565
  • 2016年07月19日 14:42
  • 2744

《多线程编程》学习之十:定时器Timer的使用,线程安全的单例模式

一、定时器Timer的使用          定时器 Timer类主要的作用是设置计划任务,它在内部使用多线程的方式进行处理;而抽象的TimerTask类负责封装任务,它实现了Runnable接口。 ...
  • studyhxz
  • studyhxz
  • 2016年11月08日 16:21
  • 1346
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA定时器 (Timer TimerTask)学习
举报原因:
原因补充:

(最多只允许输入30个字)