Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào chúng ta có thể triển khai một chuỗi bộ đếm thời gian trong Java?


Bộ hẹn giờ lớp lên lịch cho một tác vụ để chạy vào một thời điểm nhất định một lần hoặc nhiều lần. Nó cũng có thể chạy ở chế độ nền dưới dạng một chuỗi daemon. Để liên kết Bộ hẹn giờ với một chuỗi daemon, có một phương thức khởi tạo với boolean giá trị. Bộ hẹn giờ lập lịch tác vụ với độ trễ cố định cũng như tỷ lệ cố định . Trong một khoảng thời gian cố định, nếu bất kỳ quá trình thực thi nào bị trì hoãn bởi System GC , lần thực thi khác cũng sẽ bị trì hoãn và mọi lần thực hiện đều bị trì hoãn tương ứng với lần thực hiện trước đó. Theo tỷ lệ cố định, nếu bất kỳ quá trình thực thi nào bị trì hoãn bởi System GC sau đó 2-3 lần thực hiện xảy ra liên tiếp để bao gồm tỷ lệ cố định tương ứng với thời gian bắt đầu thực hiện đầu tiên. Lớp Bộ hẹn giờ cung cấp hủy () phương pháp hủy hẹn giờ. Khi phương thức này được gọi, Timer sẽ bị kết thúc. Lớp Timer chỉ thực thi tác vụ triển khai TimerTask .

Ví dụ

import java.util.*;
public class TimerThreadTest {
   public static void main(String []args) {
      Task t1 = new Task("Task 1");
      Task t2 = new Task("Task 2");
      Timer t = new Timer();
      t.schedule(t1, 10000); //  executes for every 10 seconds
      t.schedule(t2, 1000, 2000); // executes for every 2 seconds
   }
}
class Task extends TimerTask {
   private String name;
   public Task(String name) {
       this.name = name;
   }
   public void run() {
      System.out.println("[" + new Date() + "] " + name + ": task executed!");
   }
}

Đầu ra

[Thu Aug 01 21:32:44 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:46 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:48 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:50 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:52 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:53 IST 2019] Task 1: task executed!
[Thu Aug 01 21:32:54 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:56 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:58 IST 2019] Task 2: task executed!
[Thu Aug 01 21:33:00 IST 2019] Task 2: task executed!