CodeGym /Java Blog /Random /Java Timer Class
John Squirrels
Antas
San Francisco

Java Timer Class

Nai-publish sa grupo
Ang Java Timer Class ay isang makapangyarihang tool na nagbibigay-daan sa iyong mag-iskedyul ng mga gawain na isasagawa sa mga tinukoy na agwat. Kung kailangan mong magpatakbo ng isang gawain nang isang beses o paulit-ulit, ang Timer Class ay nagbibigay ng isang maginhawang paraan upang i-automate ang iyong mga Java program. Sa artikulong ito, tutuklasin natin ang mga feature ng Java Timer Class at matutunan kung paano ito epektibong ipatupad.

Panimula sa Java Timer Class

Ang Timer Class ay bahagi ng java.util package at ginagamit upang mag-iskedyul ng mga gawain para sa pagpapatupad sa isang tinukoy na oras o sa mga regular na pagitan. Nagbibigay ito ng simple at maaasahang paraan upang maisagawa ang code sa mga paunang natukoy na agwat, na ginagawa itong perpekto para sa mga gawain tulad ng pag-trigger ng mga kaganapan, pagsasagawa ng mga pana-panahong pag-update, o pag-iskedyul ng mga proseso sa background. Para magamit ang Timer Class, kailangan mong gumawa ng Timer object mula sa java.util.Timer class. Ang bagay na ito ng Timer ay responsable para sa pag-iskedyul at pagpapatupad ng mga gawain batay sa iyong mga kinakailangan.

Paglikha ng isang Timer Object

Magsimula tayo sa pamamagitan ng paglikha ng isang Timer object at paggalugad ng mga pamamaraan nito. Sa sumusunod na halimbawa ng code, gumawa kami ng isang Timer object at nag-iskedyul ng isang gawain na isasagawa nang isang beses pagkatapos ng isang tinukoy na pagkaantala:

// 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
    }
}
Sa na-update na halimbawang ito, nilikha ang object ng Timer gamit ang klase ng Timer . Ang bawat TimerTask ay kumakatawan sa isang gawain na iiskedyul at isasagawa ng timer. Ang run method sa loob ng bawat TimerTask ay naglalaman ng code na isasagawa kapag tumakbo ang gawain. Ang mga gawain ay pagkatapos ay naka-iskedyul gamit ang paraan ng iskedyul ng klase ng Timer , na tumutukoy sa gawain at ang pagkaantala sa millisecond. Sa code na ito, ang paraan ng iskedyul ay ginagamit ng tatlong beses, sa bawat oras na may ibang gawain at pagkaantala.

Output

Kapag pinatakbo mo ang code, maglalabas ito ng:
Naisakatuparan ang Gawain 1! Naisakatuparan ang Gawain 2! Naisakatuparan ang Gawain 3!
Ang bawat gawain ay isinasagawa pagkatapos ng kani-kanilang pagkaantala, na nagpapakita ng paggana ng klase ng Timer .

Mga Paraan ng Timer

Ang Timer Class ay nagbibigay ng iba't ibang paraan upang mag-iskedyul ng mga gawain para sa pagpapatupad. Tuklasin natin ang ilan sa mga karaniwang ginagamit na pamamaraan:

1. iskedyul(TimerTask task, mahabang pagkaantala)

Iniiskedyul ng pamamaraang ito ang tinukoy na gawain para sa pagpapatupad pagkatapos ng tinukoy na pagkaantala. Ang pagkaantala ay tinukoy sa millisecond. Halimbawa:

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

2. iskedyul(TimerTask task, Petsa oras)

Iniiskedyul ng pamamaraang ito ang tinukoy na gawain para sa pagpapatupad sa tinukoy na oras. Isang beses lang isasagawa ang gawain. Halimbawa:

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. iskedyul(TimerTask task, mahabang pagkaantala, mahabang panahon)

Iniiskedyul ng pamamaraang ito ang tinukoy na gawain para sa paulit-ulit na pagpapatupad pagkatapos ng tinukoy na pagkaantala at sa tinukoy na mga agwat. Ang pagkaantala ay ang oras sa millisecond bago ang unang pagpapatupad, at ang panahon ay ang oras sa millisecond sa pagitan ng mga kasunod na execution. Halimbawa:

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

Iskedyul ng Timer ng Java

Bilang karagdagan sa mga pangunahing pamamaraan ng pag-iiskedyul, ang Klase ng Timer ay nagbibigay din ng isang makapangyarihang paraan ng pag-iiskedyul na tinatawag na iskedyul(gawain sa TimerTask, Petsa ng unang Oras, mahabang panahon) . Ang paraang ito ay nagpapahintulot sa iyo na mag-iskedyul ng isang gawain para sa paulit-ulit na pagpapatupad simula sa isang tiyak na oras at sa mga regular na pagitan. Narito ang isang halimbawa na nagpapakita ng paggamit ng paraang ito:

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);
    }
}
Sa halimbawang ito, lumikha kami ng isang Timer object at tumukoy ng isang TimerTask tulad ng dati. Gumagawa din kami ng startTime object ng uri ng Petsa upang tukuyin ang oras ng pagsisimula para sa gawain. Ang paraan ng iskedyul ay pagkatapos ay ginagamit upang iiskedyul ang gawain na tumakbo bawat 5 segundo simula sa kasalukuyang oras. Gamit ang paraan ng pag-iiskedyul na ito, ang gawain ay magpapatuloy na isakatuparan sa tinukoy na agwat hanggang sa makansela ang bagay na Timer o ang programa ay winakasan. Kung hindi, ito ay magtapon ng isang pagbubukod.

Konklusyon

Ang Java Timer Class mula sa java.util.Timer package ay isang versatile na tool para sa pag-iiskedyul ng mga gawain sa iyong mga Java application. Binibigyang-daan ka nitong i-automate ang pagpapatupad ng code sa mga tinukoy na agwat, na ginagawa itong kapaki-pakinabang para sa iba't ibang mga senaryo tulad ng pag-trigger ng mga kaganapan, pagsasagawa ng mga pana-panahong pag-update, o pag-iskedyul ng mga proseso sa background. Sa artikulong ito, ginalugad namin ang mga pangunahing kaalaman ng Java Timer Class, kabilang ang paglikha ng Timer object, pag-iskedyul ng mga gawain na may mga pagkaantala o mga partikular na oras, at pag-set up ng mga paulit-ulit na pagpapatupad. Nalaman din namin ang tungkol sa mahahalagang pamamaraan na ibinigay ng Klase ng Timer , tulad ng `iskedyul` at iskedyul(gawain sa TimerTask, Petsa ng unang Oras, mahabang panahon) . Sa pamamagitan ng epektibong paggamit ng Timer Class, maaari kang magdagdag ng antas ng automation at kahusayan sa iyong mga Java program. Mag-eksperimento sa iba't ibang mga opsyon sa pag-iiskedyul at galugarin ang mga karagdagang kakayahan ng Timer Class upang mapahusay ang functionality ng iyong mga application.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION