Java基础——定时器

来源:互联网 发布:什么是大数据交易平台 编辑:程序博客网 时间:2024/06/06 08:33

定时器:Timer


import java.util.Timer;import java.util.TimerTask;public class TraditionalTimer {public static void main(String[] args) {Timer timer = new Timer();TimerTask timeTask = new TimerTask() {@Overridepublic void run() {System.out.println("timer 1");}};timer.schedule(timeTask, 1000,2000);//timer.schedule(task, date);//timer.schedule(task, firstTime, period);//timer.schedule(task, delay, period);}}

其中Timer 和 TimerTask 的设计也用到了面向对象的思想。


下面的例子为定时器分别以2s和4s的间隔交替触发:

import java.util.Timer;import java.util.TimerTask;public class TraditionalTimer {static class TimerTaskA extends TimerTask {@Overridepublic void run() {System.out.println("---A---");new Timer().schedule(new TimerTaskB(), 4000);}}static class TimerTaskB extends TimerTask {@Overridepublic void run() {System.out.println("---B---");new Timer().schedule(new TimerTaskA(), 2000);}}public static void main(String[] args) {/* 2s-4s-2s-4s-......交替启动定时器 */new Timer().schedule(new TimerTaskA(), 2000);int second = 1;while (true){try {System.out.println(second++);Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}

另一种实现方法:
import java.util.Timer;import java.util.TimerTask;public class TraditionalTimer {static int count = 0;public static void main(String[] args) {class TimerTaskA extends TimerTask {@Overridepublic void run() {System.out.println("---A---");count = (count + 1)%2;new Timer().schedule(new TimerTaskA(), count * 2000 + 2000);}}/* 2s-4s-2s-4s-......交替启动定时器 */new Timer().schedule(new TimerTaskA(), 2000);int second = 1;while (true) {try {System.out.println(second++);Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}



原创粉丝点击