Timer và TimerTask trong Java là lớp tiện ích có thể được sử dụng để lên lịch cho một luồng được thực thi tại một thời điểm nhất định trong tương lai.
Timer và TimerTask trong Java thuộc gói java.util, thường được sử dụng để lên lịch cho một luồng được thực thi tại một thời điểm nhất định trong tương lai. Lớp Timer trong Java có thể được sử dụng để lên lịch cho một tác vụ được thực thi một lần hoặc lặp lại nhiều lần.
1. Lên lịch thực thi nhiệm vụ một lần Timer trong Java
Hãy thực hiện xử lý thực thi nhiệm vụ một lần đơn giản với sự trợ giúp của lớp Timer trong Java:
package test; import java.util.Date; import java.util.Timer; import java.util.TimerTask; /** * * @author TVD */ public class TestTimer { public static void main(String[] args) { TimerTask timerTask = new TimerTask() { @Override public void run() { System.out.println(new Date().toString()); } }; long delay = 1000L; Timer timer = new Timer("Timer"); timer.schedule(timerTask, delay); } }
Kết quả sau khi chạy lệnh trên như sau:
Thu Feb 28 10:16:47 ICT 2019
Trong phương thức schedule() nhận vào tham số TimerTask và thời gian chờ xử lý (delay).
2. Lên lịch thực thi nhiệm vụ nhiều lần Timer trong Java
Hãy thực hiện xử lý thực thi nhiệm vụ nhiều lần đơn giản với sự trợ giúp của lớp Timer trong Java:
package test; import java.util.Date; import java.util.Timer; import java.util.TimerTask; /** * * @author TVD */ public class TestTimer { public static void main(String[] args) { TimerTask timerTask = new TimerTask() { @Override public void run() { System.out.println(new Date().toString()); } }; long delay = 1000L; Timer timer = new Timer("Timer"); timer.schedule(timerTask, 0, delay); } }
Kết quả sau khi chạy lệnh trên như sau:
Thu Feb 28 10:34:00 ICT 2019 Thu Feb 28 10:34:01 ICT 2019 Thu Feb 28 10:34:02 ICT 2019 Thu Feb 28 10:34:03 ICT 2019 Thu Feb 28 10:34:04 ICT 2019
3. Lên lịch thực thi nhiệm vụ hẹn giờ cố định Timer trong Java
Ví dụ như bạn muốn thực thi nhiệm vụ hẹn giờ cố định, đúng 06h:00m mỗi ngày sẽ gởi mail thông báo nhắc nhở thì thực hiện như sau:
package test; import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; /** * * @author TVD */ public class TestTimer { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 6); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); Date dateSchedule = calendar.getTime(); long period = 24 * 60 * 60 * 1000; TimerTask timerTask = new TimerTask() { @Override public void run() { System.out.println("GỞI MAIL"); } }; Timer timer = new Timer(); timer.schedule(timerTask, dateSchedule, period); } }
Kết quả sau khi chạy lệnh trên như sau:
GỞI MAIL
Lời kết: Trong thời gian tới Team Việt Dev sẽ tiếp tục chia sẻ thêm nhiều bài viết trong loạt bài hướng dẫn về ngôn ngữ lập trình Java… miễn phí đến bạn đọc, các bạn nhớ theo dõi kênh để có được những chia sẻ mới nhất.
(Tác giả: Team Việt Dev)