使用Timer类设计定时器

Timer类的定时器在使用时,都需要构建一个定时任务(TimerTask),因此在使用定时器的时候,都需要创建一个TimerTask类的对象(为了节省空间和方便阅读,将TimerTask类的对象以匿名类的形式声明),而Timer类中常用的方法如下
对在这里TI插入图片描述
下面的代码则针对上述方法,一一进行使用


	public static void main(String[] args) {
		//使用构造方法创建两个对象
		Timer timer = new Timer();
		Timer timer2 = new Timer("定时器");
		
		//普通方法
		//1.使用void schedule(TimerTask task,Date time)指定在现在5秒后打印输出语句
		Date date = new Date(System.currentTimeMillis()+5000);
		//倒计时
		for (int i = 5; i > 0; i--) {
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			System.out.println(i);
		}
		//指定五秒后打印输出
		timer.schedule(new TimerTask() {
			@Override
			public void run() {
				System.out.println("五秒后打印输出");
			}
		}, date);
		
		//2.使用void schedule(TimerTask task,long delay )指定在3秒后打印输出语句
		timer.schedule(new TimerTask(){
			@Override
			public void run() {
				System.out.println("延时3秒打印");
			}
		}, 3000);
		
		//3.使用void schedule(TimerTask task, Date first,long period)从现在开始打印输出,每间隔1秒
		timer2.schedule(new TimerTask(){
			@Override
			public void run() {
				System.out.println("现在开始打印输出,间隔1秒");
			}
		}, new Date() , 1000L);
		
		
		//4.使用void schedule(TimerTask task,long delay,long period).延迟2秒后打印输出,间隔1秒
		timer2.schedule(new TimerTask() {
			
			@Override
			public void run() {
				System.out.println("延迟2秒后打印输出,间隔1秒");
				
			}
		}, 2000, 1000);
	
		
		//5.使用void scheduleAtFixedRate(TimerTask task,Date first,long period)从两秒之前打印输出,间隔1秒
		Date date2 = new Date(System.currentTimeMillis()-2000);
		timer2.scheduleAtFixedRate(new TimerTask() {
			
			@Override
			public void run() {
				System.out.println("两秒之前打印输出,间隔1秒");
				
			}
		}, date2, 1000);
		
		//6.使用void scheduleAtFixedRate(TimerTask task,long delay,long period)延迟三秒后打印,间隔两秒
		timer2.scheduleAtFixedRate(new TimerTask() {
			
			@Override
			public void run() {
				System.out.println("延迟三秒后打印,间隔两秒");
				
			}
		}, 3000, 2000);
		
		//7.使用void cancel() 终结任务
		timer.schedule(new TimerTask() {
			
			@Override
			public void run() {
				System.out.println("两秒后打印,并结束任务");
				
			}
		}, 2000);
		timer.cancel();

	}

} ava
在这里插入代码片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值