项目开发中经常用到定时任务,本篇对定时任务类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();
}
}
}
}
运行结果:
更多推荐
(一)定时任务类Timer中schedule的new TimerTask()方法的使用示例(简单的)
发布评论