1: 一定時間後にタスクを1回実行: 1000ミリ秒後にタスクを実行(1回のみ実行)
2: 5000ミリ秒後にタスクを実行し、その後1000ミリ秒ごとに再度タスクを実行(無限実行)
3 : 交互再生: タスクは 2 秒と 4 秒で交互に実行されます (無限実行)、
4: 2 つの周期的な交互タスクを作成します: 2 秒後にタスク A が実行されます。タスク B はタスク A で作成され、4 秒後に実行され、タスク A はタスク B で作成され、2 秒後に実行されます。
1,2,3 コード:
import java.util.Date; import java.util.Timer; import java.util.TimerTask; /** * @author Administrator @zsw 2012-7-19 下午04:37:19 */ public class TraditionalTimer { public static void main(String[] args) { //1: // test1(); //2: // test2(); //3: test3(); //用于打印时间秒数 while (true) { System.out.println(new Date().getSeconds()); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //1:固定时间后执行一次任务:1000毫秒后执行任务(只执行一次) public static void test1() { new Timer().schedule(new TimerTask() { @Override public void run() { // TODO Auto-generated method stub System.out.println("bombing!"); } }, 1000); } // 2:5000毫秒后,执行任务,以后每隔1000毫秒再执行一次任务(无限执行) public static void test2() { new Timer().schedule(new TimerTask() { @Override public void run() { // TODO Auto-generated method stub System.out.println("bombing!"); } }, 5000, 1000); } //3:交替再生:任务2秒4秒交替的执行(无限执行), static int count = 0; public static void test3() { class MyTimerTask extends TimerTask { @Override public void run() { count = (count + 1) % 2; System.out.println("bombing!"); new Timer().schedule(new MyTimerTask(), 2000 + count * 2000); } } new Timer().schedule(new MyTimerTask(), 2000); } }
4 コード
import java.util.Date; import java.util.Timer; import java.util.TimerTask; /** * @author Administrator @zsw 2012-7-20 下午08:08:42 */ public class TraditionalTime2 { /* * 创建两个循环交替任务:2秒后,A任务执行。 * A任务里面创建一个B任务4秒后执行,B任务里面又创建一个A任务2秒后执行,,如此往复。 * */ public static void main(String[] args) { TraditionalTime2 t2=new TraditionalTime2(); new Timer().schedule(t2.new A(), 2000); //用于打印时间秒数 while (true) { System.out.println(new Date().getSeconds()); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } class A extends TimerTask { @Override public void run() { System.out.println("A bombing!"); new Timer().schedule(new B(), 4000); } } class B extends TimerTask { @Override public void run() { System.out.println("B bombing!"); new Timer().schedule(new A(), 2000); } } }
マルチスレッド_複数のタイマーの書き方関連記事については、PHP 中国語 Web サイトに注目してください。