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(); } } } }