CodeGym /จาวาบล็อก /สุ่ม /คลาสตัวจับเวลา Java
John Squirrels
ระดับ
San Francisco

คลาสตัวจับเวลา Java

เผยแพร่ในกลุ่ม
Java Timer Class เป็นเครื่องมืออันทรงพลังที่ช่วยให้คุณสามารถกำหนดเวลางานที่จะดำเนินการตามช่วงเวลาที่กำหนด ไม่ว่าคุณจะต้องรันงานหนึ่งครั้งหรือซ้ำๆTimer Class มอบวิธีที่สะดวกในการทำให้โปรแกรม Java ของคุณเป็นแบบอัตโนมัติ ในบทความนี้ เราจะสำรวจคุณสมบัติของ Java Timer Class และเรียนรู้วิธีการใช้งานอย่างมีประสิทธิภาพ

ความรู้เบื้องต้นเกี่ยวกับคลาส Java Timer

Timer Class เป็นส่วนหนึ่งของ แพ็คเกจ java.utilและใช้เพื่อกำหนดเวลางานสำหรับการดำเนินการตามเวลาที่กำหนดหรือตามช่วงเวลาที่สม่ำเสมอ โดยให้วิธีที่ง่ายและเชื่อถือได้ในการรันโค้ดตามช่วงเวลาที่กำหนด ทำให้เหมาะสำหรับงานต่างๆ เช่น การเรียกใช้เหตุการณ์ การดำเนินการอัปเดตเป็นระยะ หรือการจัดกำหนดการกระบวนการในเบื้องหลัง หากต้องการใช้Timer Class คุณต้องสร้าง อ็อบเจ็กต์ Timerจากคลาสjava.util.Timer ออบเจ็กต์ Timer นี้มีหน้าที่รับผิดชอบในการจัดกำหนดการและดำเนินงานตามความต้องการของคุณ

การสร้างวัตถุตัวจับเวลา

เริ่มต้นด้วยการสร้าง วัตถุ Timerและสำรวจวิธีการของมัน ในตัวอย่างโค้ดต่อไปนี้ เราสร้าง วัตถุ Timerและกำหนดเวลางานที่จะดำเนินการหนึ่งครั้งหลังจากการหน่วงเวลาที่ระบุ:

// First we will import the java.util.Timer & java.util.TimerTask classes
import java.util.Timer;
import java.util.TimerTask;

public class TimerExample {
    public static void main(String[] args) {
        Timer timer = new Timer(); // Creating a Timer object from the timer class

        TimerTask task1 = new TimerTask() {
            public void run() {
                System.out.println("Task 1 executed!");
            }
        };

        TimerTask task2 = new TimerTask() {
            public void run() {
                System.out.println("Task 2 executed!");
            }
        };

        TimerTask task3 = new TimerTask() {
            public void run() {
                System.out.println("Task 3 executed!");
            }
        };

        // Scheduling tasks to run after specified delays
        timer.schedule(task1, 2000); // Using the schedule method of the timer class
        timer.schedule(task2, 4000); // Using the schedule method of the timer class
        timer.schedule(task3, 6000); // Using the schedule method of the timer class
    }
}
ในตัวอย่างที่อัปเดตนี้ ออบเจ็กต์ Timerจะถูกสร้างขึ้นโดยใช้คลาสTimer TimerTaskแต่ละรายการแสดงถึงงานที่จะถูกกำหนดเวลาและดำเนินการโดยตัวจับเวลา วิธี การรันภายในTimerTask แต่ละรายการ ประกอบด้วยโค้ดที่จะดำเนินการเมื่องานรัน จากนั้นงานจะถูกกำหนดเวลาโดยใช้ วิธี การกำหนดเวลาของ คลาส Timerโดยระบุงานและความล่าช้าในหน่วยมิลลิวินาที ในโค้ดนี้ วิธีการกำหนดเวลาจะใช้สามครั้ง แต่ละครั้งมีงานและความล่าช้าที่แตกต่างกัน

เอาท์พุต

เมื่อคุณรันโค้ด มันจะแสดงผล:
ภารกิจที่ 1 สำเร็จ! ภารกิจที่ 2 สำเร็จ! ภารกิจที่ 3 สำเร็จ!
แต่ละงานจะถูกดำเนินการหลังจากการหน่วงเวลาตามลำดับ ซึ่งแสดงให้เห็นถึงการทำงานของคลาส Timer

วิธีการจับเวลา

Timer Class มีวิธีการต่างๆ ในการกำหนดเวลางานสำหรับการดำเนินการ เรามาสำรวจวิธีการที่ใช้กันทั่วไปบางส่วนกัน:

1. กำหนดการ (งาน TimerTask ดีเลย์ยาว)

วิธีการนี้จัดกำหนดการงานที่ระบุสำหรับการดำเนินการหลังจากการหน่วงเวลาที่ระบุ ความล่าช้าระบุเป็นมิลลิวินาที ตัวอย่างเช่น:

timer.schedule(task, 5000); // Schedule the task to run after a 5-second delay

2. กำหนดการ (งาน TimerTask, วันที่และเวลา)

วิธีการนี้จัดกำหนดการงานที่ระบุสำหรับการดำเนินการตามเวลาที่กำหนด งานจะถูกดำเนินการเพียงครั้งเดียว ตัวอย่างเช่น:

Date executionTime = new Date(System.currentTimeMillis() + 5000); // Get the current time + 5 seconds
timer.schedule(task, executionTime); // Schedule the task to run at the specified time

3. ตารางเวลา (งาน TimerTask, ดีเลย์ยาว, คาบเวลานาน)

วิธีการนี้จัดกำหนดการงานที่ระบุสำหรับการดำเนินการซ้ำหลังจากการหน่วงเวลาที่ระบุและตามช่วงเวลาที่ระบุ ความล่าช้าคือเวลาเป็นมิลลิวินาทีก่อนการประมวลผลครั้งแรก และช่วงเวลาคือเวลาเป็นมิลลิวินาทีระหว่างการประมวลผลครั้งต่อไป ตัวอย่างเช่น:

timer.schedule(task, 2000, 5000); // Schedule the task to run after a 2-second delay and repeat every 5 seconds

กำหนดการจับเวลา Java

นอกเหนือจากวิธีการตั้งเวลาขั้นพื้นฐานแล้วTimer Class ยังมีวิธีการจัดตารางเวลาที่มีประสิทธิภาพที่เรียกว่าschedule(งาน TimerTask, Date firstTime, long period ) วิธีการนี้ช่วยให้คุณสามารถกำหนดเวลางานสำหรับการดำเนินการซ้ำโดยเริ่มตามเวลาที่กำหนดและในช่วงเวลาปกติ นี่คือตัวอย่างที่สาธิตการใช้วิธีนี้:

import java.util.Timer;
import java.util.TimerTask;
import java.util.Date;

public class TimerExample {
    public static void main(String[] args) {
        Timer timer = new Timer();

        TimerTask task = new TimerTask() {
            public void run() {
                System.out.println("Task executed!");
            }
        };

        // Schedule the task to run every 5 seconds starting from the current time
        Date startTime = new Date();
        timer.schedule(task, startTime, 5000);
    }
}
ในตัวอย่างนี้ เราสร้าง วัตถุ TimerและกำหนดTimerTaskเหมือนเมื่อก่อน นอกจากนี้เรายังสร้าง อ็อบเจ็กต์ startTimeประเภทDateเพื่อระบุเวลาเริ่มต้นสำหรับงาน จากนั้นจะใช้ วิธีกำหนดเวลาเพื่อกำหนดเวลางานให้รันทุกๆ 5 วินาทีโดยเริ่มจากเวลาปัจจุบัน ด้วยวิธีการจัดตารางเวลานี้ งานจะดำเนินการต่อไปตามช่วงเวลาที่กำหนด จนกว่า ออบเจ็กต์ Timerจะถูกยกเลิกหรือโปรแกรมถูกยกเลิก มิฉะนั้นจะทำให้เกิดข้อยกเว้น

บทสรุป

Java Timer Class จาก แพ็กเกจ java.util.Timerเป็นเครื่องมืออเนกประสงค์สำหรับการกำหนดเวลางานในแอปพลิเคชัน Java ของคุณ ช่วยให้คุณสามารถดำเนินการโค้ดอัตโนมัติตามช่วงเวลาที่กำหนด ทำให้มีประโยชน์สำหรับสถานการณ์ต่างๆ เช่น การเรียกใช้เหตุการณ์ การดำเนินการอัปเดตเป็นระยะ หรือการจัดกำหนดการกระบวนการในเบื้องหลัง ในบทความนี้ เราได้สำรวจพื้นฐานของ Java Timer Class รวมถึงการสร้าง อ็อบเจ็กต์ Timerการกำหนดเวลางานด้วยความล่าช้าหรือเวลาที่เฉพาะเจาะจง และการตั้งค่าการดำเนินการซ้ำๆ นอกจากนี้เรายังได้เรียนรู้เกี่ยวกับวิธีการที่สำคัญที่ คลาส ตัวจับเวลา มอบให้ เช่น `กำหนดการ` และกำหนดการ(งานตัวจับเวลา, วันที่ครั้งแรก, ระยะเวลานาน) ด้วยการใช้Timer Class อย่างมีประสิทธิภาพ คุณสามารถเพิ่มระดับของระบบอัตโนมัติและประสิทธิภาพให้กับโปรแกรม Java ของคุณได้ ทดลองใช้ตัวเลือกการกำหนดเวลาต่างๆ และสำรวจความสามารถเพิ่มเติมของTimer Class เพื่อปรับปรุงฟังก์ชันการทำงานของแอปพลิเคชันของคุณ
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION