02-多线程
10秒后爆炸:
package cn.itcast.demo.po;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class TradictionalTimer {
public static void main(String[] args) {
// 创建一个定时器
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("bombing!");
}
}, 10000); // 10秒后执行run方法
// 观察定时器的运行
while (true) {
System.out.println(new Date().getSeconds());
// 每一秒中打印一次
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
第一次10秒后炸,以后每隔3秒后炸一次
package cn.itcast.demo.po;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class TradictionalTimer {
public static void main(String[] args) {
// 创建一个定时器
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("bombing!");
}
}, 10000, 3000);
}
}
第一次2秒后爆炸,之后是4秒和2秒间隔循环爆炸
package cn.itcast.demo.po;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class TradictionalTimer {
private static int count = 0;
public static void main(String[] args) {
class MyTimer extends TimerTask {
@Override
public void run() {
count = (count+1) % 2; // 0和1之间切换
System.out.println("bombing!"); // 炸完之后又创建了一个定时器,无限循环
new Timer().schedule(new MyTimer(), 2000+2000*count);
}
}
// 创建一个定时器
new Timer().schedule(new MyTimer(), 2000);
while (true) {
try {
Thread.sleep(1000);
System.out.println(new Date().getSeconds());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

浙公网安备 33010602011771号