天天看點

java定時schedule(task,time,period)

1.建立一個java項目,裡面建立兩個java類,整體的架構如圖所示:

java定時schedule(task,time,period)

2.MyTimer.java裡面的代碼如下所示:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;

public class MyTimer {

	public static void main(String[] args) {
		Timer timer = new Timer();
		MyTimerTask myTimerTask = new MyTimerTask("Number 1.");
		Calendar calendar = Calendar.getInstance();
		SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		System.out.println(sf.format(calendar.getTime()));
		calendar.add(Calendar.SECOND, 3);
		myTimerTask.setName("schedule");
		// schedule(task,time,period)時間等于或超過time執行task,之後每隔period執行一次task
		timer.schedule(myTimerTask, calendar.getTime(), 2000);
	}

}
           

3.MyTimerTask.java裡面的代碼如下所示:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimerTask;

public class MyTimerTask extends TimerTask {

	private static String name;

	public MyTimerTask(String inputName) {
		name = inputName;
	}

	@Override
	public void run() {
		Calendar calendar = Calendar.getInstance();
		SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		System.out.println("Current exec time is:" + sf.format(calendar.getTime()));
		System.out.println("Current exec name is:" + name);
	}

	public static String getName() {
		return name;
	}

	public static void setName(String name) {
		MyTimerTask.name = name;
	}

}
           

4.運作得到定時結果:

java定時schedule(task,time,period)

繼續閱讀