Video: Scheduling Task in Java periodically | TimerTask | ScheduledExecutorService | Spring Scheduler 2024
Hier is een goed bewaard geheim: Java-programma's zijn multithreaded , wat betekent dat er verschillende dingen tegelijk gebeuren wanneer u een Java-programma uitvoert. Natuurlijk voert de computer de code uit die je hebt geschreven, maar hij voert ook andere code uit (code die je niet hebt geschreven en niet ziet).
Al deze code wordt tegelijkertijd uitgevoerd. Terwijl de computer de verklaringen van uw hoofdmethode uitvoert, neemt de ene na de andere computer de time-out, sluipt kort weg en voert instructies uit van andere, ongeziene methoden. Voor de meeste eenvoudige Java-programma's zijn deze andere methoden methoden die worden gedefinieerd als onderdeel van de Java Virtual Machine (JVM).
Java heeft bijvoorbeeld een thread voor het afhandelen van gebeurtenissen. Terwijl uw code wordt uitgevoerd, wordt de code van de gebeurtenishandledingsdraad op de achtergrond uitgevoerd. De code van de event-handling thread luistert naar muisklikken en onderneemt passende actie wanneer een gebruiker met de muis klikt. De figuur illustreert hoe dit werkt.
Wanneer de gebruiker op de knop klikt, zegt de thread voor het afhandelen van gebeurtenissen: "Oké, er is op de knop geklikt. Wat moet ik daar aan doen? "En het antwoord is:" Noem enkele actieGeformeerde methoden. "Het is alsof de gebeurtenishandlijn een code heeft die er zo uitziet:
if (buttonJustGotClicked ()) {object1. actionPerformed (infoAboutTheClick); object2. actionPerformed (infoAboutTheClick); object3. actionPerformed (infoOboutTheClick);}
Natuurlijk is achter elk antwoord nog een andere vraag. In deze situatie is de vervolgvraag: "Waar vindt de thread voor het behandelen van gebeurtenissen actie Vereiste methoden om te bellen? "En er is nog een vraag:" Wat als u niet wilt dat de thread voor het afhandelen van gebeurtenissen bepaalde acties aanroept Geproduceerde methoden die op de loer liggen in uw code? “
Nou, daarom noem je de addActionListener-methode. In de aanbieding, de knop bellen
. addActionListener (deze);
geeft de thread voor het afhandelen van gebeurtenissen aan: "Plaats de actiePerformed-methode van deze code in de lijst met methoden die moet worden aangeroepen. Noem de actie Geformormeerde methode van deze code wanneer op de knop wordt geklikt. "
Dus zo werkt het. Om de computer een actionPerformed-methode aan te laten roepen, registreert u de methode met de event-handling thread van Java. U doet deze registratie door addActionListener aan te roepen. De methode addActionListener behoort tot het object waarvan u de klikken (en andere gebeurtenissen) wacht.
In de lijst wacht u tot het knopobject wordt geklikt en behoort de methode addActionListener tot dat knopobject.