package Thread01;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class TraditionTimerTask {
public static void main(String[] args) {
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("bombing!");//第一次延时1秒bombing,以后每隔两秒bombing一次
}
}, 1000,2000);
while(true){
System.out.println(new Date().getSeconds());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
5
bombing!
6
7
bombing!
8
9
bombing!
10
……….
假如现在要一次隔两秒,一次隔三秒怎么办?
package Thread01;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
class TimerTask1 extends TimerTask {
@Override
public void run() {
System.out.println("1 bombing!");
new Timer().schedule(new TimerTask2(), 2000);
}
}
class TimerTask2 extends TimerTask {
@Override
public void run() {
System.out.println("2 bombing!");
new Timer().schedule(new TimerTask1(), 3000);
}
}
public class TimerTest01 {
public static void main(String[] args) {
new Timer().schedule(new TimerTask1(), 5000);
while (true) {
System.out.println(new Date().getSeconds());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
或者
package Thread01;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class TimerBomb {
public static int count=0;
public static void main(String[] args) {
class MyTimerTask extends TimerTask{
@Override
public void run() {
count=(count+1)%2;
System.out.println("bombing!");
new Timer().schedule(new MyTimerTask(), 2000+1000*count);
}
}
new Timer().schedule(new MyTimerTask(), 2000);
while(true){
System.out.println(new Date().getSeconds());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}