admin管理员组

文章数量:1794759

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

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

项目开发中经常用到定时任务,本篇对定时任务类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(); } } } }

运行结果:

本文标签: 示例简单方法Timerschedule