import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; /** * 定时器 timer (功能有限,只能采用[秒数等]计算定时), 其他更好的工具 quartz ,spring scheduler */ public class TraditionalTimerTest { static int count=0; /** * @param args */ public static void main(String[] args) { //不写 3000,就只 1s钟后 开始爆炸 //写3000,就是1s后爆炸 然后隔 3s再炸下,循环 new Timer().schedule(new TimerTask() { @Override public void run() { // TODO Auto-generated method stub System.out.println("bombing!"); } }, 1000,3000); //定时器 ,10后爆炸 //2s后 炸,然后 2s后 再炸 继续这样 new Timer().schedule(new TimerTask() { @Override public void run() { // TODO Auto-generated method stub System.out.println("bombing!"); new Timer().schedule(new TimerTask(){ @Override public void run() { // TODO Auto-generated method stub System.out.println("bombing!"); } }, 4000); //如果为2000 就是 2s 的循环爆炸, 如果为 4000 就是 2 s 4s 的交替 执行 } }, 2000,6000); //定时器 ,10后爆炸 //另一种思路实现上面的 每隔2s 4s 4s 4s 连环 爆炸 class MyTimerTask extends TimerTask{ @Override public void run() { System.out.println("bombing!"); new Timer().schedule(new MyTimerTask(), 4000); } } new Timer().schedule(new MyTimerTask(), 2000); //另一种思路实现上面的 每隔2s 4s 2s 4s 连环 爆炸 class MyTimerTask1 extends TimerTask{ @Override public void run() { count=(count++)%2; System.out.println("bombing!"); new Timer().schedule(new MyTimerTask1(), 2000+2000*count); //如果为2000 就是 2s 的循环爆炸, 如果为 4000 就是 2 s 4s 的交替 执行 } } //指定的时间 点 开始执行,然后 间隔 2s执行一次 Calendar cal=Calendar.getInstance(); cal.add(Calendar.SECOND, 10); new Timer().schedule(new TimerTask(){ @Override public void run() { // TODO Auto-generated method stub System.out.println("bombing!"); } }, cal.getTime(), 2000); //打印计时 while(true){ System.out.println(new Date().getSeconds()); try { Thread.sleep(1000); } catch (Exception e) { e.printStackTrace(); } } } }
java 定时器 Timer
猜你喜欢
转载自takeme.iteye.com/blog/2314815
今日推荐
周排行