这是一个局域网ARP病毒查询的子程序,内部已写好,但定时器从没用过老板要求:
系统打开后,每X分钟调用一次我的子程序getArp,我的子系统每Y分钟采集一次数据(0<Y<X),X,Y都要求以参数传入----getArp(int x,int y)请高手指点
系统打开后,每X分钟调用一次我的子程序getArp,我的子系统每Y分钟采集一次数据(0<Y<X),X,Y都要求以参数传入----getArp(int x,int y)请高手指点
private java.util.Timer timer;
timer = new Timer(true);
timer.schedule(
new java.util.TimerTask() { public void run() { //server.checkNewMail(); 要操作的方法 } }, 0, 5*60*1000);
第一个参数是要操作的方法,第二个参数是要设定延迟的时间,第三个参数是周期的设定,每隔多长时间执行该操作。 使用这几行代码之后,Timer本身会每隔5分钟调用一遍server.checkNewMail()方法,不需要自己启动线程。Timer本身也是多线程同步的,多个线程可以共用一个Timer,不需要外部的同步代码。 2、
(1)Timer.schedule(TimerTask task,Date time)安排在制定的时间执行指定的任务。
(2)Timer.schedule(TimerTask task,Date firstTime ,long period)安排指定的任务在指定的时间开始进行重复的固定延迟执行.
(3)Timer.schedule(TimerTask task,long delay)安排在指定延迟后执行指定的任务.
(4)Timer.schedule(TimerTask task,long delay,long period)安排指定的任务从指定的延迟后开始进行重复的固定延迟执行.
(5)Timer.scheduleAtFixedRate(TimerTask task,Date firstTime,long period)安排指定的任务在指定的时间开始进行重复的固定速率执行.
(6)Timer.scheduleAtFixedRate(TimerTask task,long delay,long period)安排指定的任务在指定的延迟后开始进行重复的固定速率执行.
加入Thread.sleep(你需要等待的时间)
import java.util.*;
import java.io.*;class myTask extends java.util.TimerTask {
String jobName;
private int i;
public void run() { //run in interface Runnable
System.out.println(jobName);
} public myTask(String jobName) {
this.jobName = jobName;
}
} public class doTask {
private java.util.Timer timer;
private java.util.TimerTask task;
public doTask(java.util.TimerTask task) {
this.timer = new Timer();
this.task = task;
}
public void start(int delay, int internal) {
timer.schedule(task, delay * 1000, internal * 1000);//利用timer.schedule方法
} public static void main(String[] args) {
java.util.TimerTask task1 = new myTask(" Job 1");
java.util.TimerTask task2= new myTask("Job 2");
doTask pt = new doTask(task1);
pt.start(1,3);
doTask pt2 = new doTask(task2);
pt2.start(1,1);
} }