多线程_几种定时器的写法

来源:互联网 发布:苹果mac 镜像下载 编辑:程序博客网 时间:2024/05/29 09:57


1 :固定时间后执行一次任务:1000毫秒后执行任务(只执行一次)

2: 5000毫秒后,执行任务,以后每隔1000毫秒再执行一次任务(无限执行)

3:交替再生:任务24秒交替的执行(无限执行)

4: 创建两个循环交替任务:2秒后,A任务执行。 A任务里面创建一个B任务4秒后执行,B任务里面又创建一个A任务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 blocke.printStackTrace();}}}//1:固定时间后执行一次任务:1000毫秒后执行任务(只执行一次)public static void test1() {new Timer().schedule(new TimerTask() {@Overridepublic void run() {// TODO Auto-generated method stubSystem.out.println("bombing!");}}, 1000);}// 2:5000毫秒后,执行任务,以后每隔1000毫秒再执行一次任务(无限执行)public static void test2() {new Timer().schedule(new TimerTask() {@Overridepublic void run() {// TODO Auto-generated method stubSystem.out.println("bombing!");}}, 5000, 1000);}//3:交替再生:任务2秒4秒交替的执行(无限执行),static int count = 0;public static void test3() {class MyTimerTask extends TimerTask {@Overridepublic 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 blocke.printStackTrace();}}}class A extends TimerTask {@Overridepublic void run() {System.out.println("A bombing!");new Timer().schedule(new B(), 4000);}}class B extends TimerTask {@Overridepublic void run() {System.out.println("B bombing!");new Timer().schedule(new A(), 2000);}}}


原创粉丝点击