当前位置: 首页 > >

java time_java time 定时器的三种基本用法

发布时间:

import java.util.Random;


import java.util.Timer;


import java.util.TimerTask;


/**


* @description jdk time时间定时器的三种用法。


* @author LUKE


* @time 2018年5月28日 下午2:57:02


*/


public class TimeTest {


public static void main(String[] args) {


long startTime = System.currentTimeMillis();


System.out.println("startTime="+startTime);


// long delay = 2000;


// long period = 4000;


// 在延迟delay毫秒后执行一次任务。(只执行一次)


// timeSchedule(startTime, 2000);


// 在延迟delay毫秒后执行一次任务,然后以period毫秒间隔的频率执行。


// timeScheduleLoop(startTime, delay, period);


// 在延迟delay毫秒后执行一次任务,然后以period毫秒间隔的频率执行。


// timeScheduleAtFixedRate(startTime, delay, period);


long endTime = System.currentTimeMillis();


System.out.println("endTime="+endTime+", 共耗时:"+(endTime - startTime)+"毫秒。");


}


/**


* @description 在延迟delay毫秒后执行一次任务,然后以period毫秒间隔的频率执行。


* @author LUKE


* @time 2018年5月28日 下午2:56:28


* @param startTime


* @param delay


* @param period


*/


public static void timeScheduleAtFixedRate(long startTime, long delay, long period) {


Timer timer = new Timer();


timer.scheduleAtFixedRate(new TimerTask() {


@Override


public void run() {


long taskTime = System.currentTimeMillis();


System.out.println("taskTime="+taskTime+", 间隔"+(taskTime - startTime)+"毫秒。");


int len = 100000000;


int [] arrs = new int [len];


for(int i = 0; i < len; i++){


arrs[i] = new Random().nextInt();


// System.out.print(arrs[i]+" # ");


}


long taskEndTime = System.currentTimeMillis();


System.out.println("taskEndTime="+taskEndTime+", 任务循环耗时"+(taskEndTime - taskTime)+"毫秒。");


System.out.println("********************************************");


}


}, delay, period);


}


/**


* @description 在延迟delay毫秒后执行一次任务,然后以period毫秒间隔的频率执行。


* @author LUKE


* @time 2018年5月28日 下午2:29:43


* @param startTime


* @param delay


* @param period


*/


public static void timeScheduleLoop(long startTime, long delay, long period) {


Timer timer = new Timer();


timer.schedule(new TimerTask() {


@Override


public void run() {


long taskTime = System.currentTimeMillis();


System.out.println("taskTime="+taskTime+", 间隔"+(taskTime - startTime)+"毫秒。");


int len = 100000000;


int [] arrs = new int [len];


for(int i = 0; i < len; i++){


arrs[i] = new Random().nextInt();


// System.out.print(arrs[i]+" # ");


}


long taskEndTime = System.currentTimeMillis();


System.out.println("taskEndTime="+taskEndTime+", 任务循环耗时"+(taskEndTime - taskTime)+"毫秒。");


System.out.println("********************************************");


}


}, delay, period);


}


/**


* @description 在延迟delay毫秒后执行一次任务。(只执行一次)


* @author LUKE


* @time 2018年5月28日 上午10:12:19


* @param startTime


*/


public static void timeSchedule(long startTime, long delay) {


Timer timer = new Timer();


timer.schedule(new TimerTask() {


@Override


public void run() {


long taskTime = System.currentTimeMillis();


System.out.println("taskTime="+taskTime+", 等待"+(taskTime - startTime)+"毫秒。 do task...");


}


}, delay);


}


}



友情链接: