(一)定时任务类Timer中schedule的new TimerTask()方法的使用示例(简单的)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u013131716/article/details/100902605

项目开发中经常用到定时任务,本篇对定时任务类Timer中schedule的new TimerTask()方法的使用进行说明,以下代码示例内容:
在这里插入图片描述

示例一:
需求:10秒之后爆炸一次(用炸弹为例)

package com.test.timer;

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

/*
 * 需求:
 * 10秒之后爆炸一次
 * */
public class TimerTest01 {
	public static void main(String[] args){
		
		//定时器:10秒之后爆炸
		new Timer().schedule(new TimerTask() {
			
			@Override
			public void run() {
				System.out.println("爆炸一次!");
			}
		}, 10000);
		
		while(true){
			System.out.println("系统当前秒数:" + new Date().getSeconds() + "s");
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	} 	
}

运行结果:
在这里插入图片描述

示例二:
需求:10秒之后爆炸一次,之后每隔2秒爆炸一次。(能重复炸)

package com.test.timer;

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

/*
 * 需求:
 * 10秒之后爆炸一次,之后每隔2秒爆炸一次。
 * */
public class TimerTest02 {
	public static void main(String[] args){
		
		//定时器:10秒之后每隔2秒爆炸一次
		new Timer().schedule(new TimerTask() {
	
			@Override
			public void run() {
				System.out.println("爆炸一次!");
			}
		}, 10000,2000);
		
		while(true){
			System.out.println("系统当前秒数:" + new Date().getSeconds() + "s");
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}	
}

运行结果:
在这里插入图片描述

示例三:
需求:5秒之后开始爆炸,之后每隔2秒爆炸一次,再间隔4秒爆炸一次,然后每隔2秒和4秒进行循环爆炸。

package com.test.timer;

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

/*
 * 需求:
 * 5秒之后开始爆炸,之后每隔2秒爆炸一次,再间隔4秒爆炸一次,然后每隔2秒和4秒进行循环爆炸。
 * */
public class TimerTest03 {
	private static int count = 1;
	public static void main(String[] args){
		
    class MyTimerTask extends TimerTask {		
			@Override
			public void run() {
				count = (count + 1)%2;
				System.out.println("爆炸一次!");
				new Timer().schedule(new MyTimerTask(), 2000+2000*count);
			}
		}
		
		new Timer().schedule(new MyTimerTask(), 5000);
		
		while(true){
			System.out.println("当前系统秒数:" + new Date().getSeconds() + "s");
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
}

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u013131716/article/details/100902605
今日推荐