Was ist der einfachste Weg, um einen Teil von Java-Code mit einer bestimmten Rate geplant zu haben?Java-Thread alle X Sekunden
Antwort
In Java 5+ mit einem ScheduledExecutorService
:
ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
exec.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
// do stuff
}
}, 0, 5, TimeUnit.SECONDS);
Das obige Verfahren bevorzugt wird. Vor der Java 5 verwendet, um Sie Timer
und TimerTask
:
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
// do staff
}
}, 0, 5000);
Mit einem ScheduledExecutorService.
Werfen Sie einen Blick auf Executors.newScheduledThreadPool
. Es ermöglicht Ihnen, eine ScheduledExecutorService
erstellt, mit der Sie senden können Runnable
s in regelmäßigen Abständen ausgeführt werden.
while (true) {
thread.sleep(1000)
method();
}
In vielen Fällen wird es bessere Alternativen. Aber das ist der einfachste Weg, um eine regelmäßige Ausführung Ihrer Methode() in einem Intervall von 1000ms + n zu implementieren (wobei n ist die Menge an Zeit für die Ausführung Methode())
Natürlich statt 1000, können Sie setzen beliebiger Millisekundenwert, den Sie wünschen. Es könnte auch eine Idee sein, die while-Schleife auf ein Flag zu implementieren, das ein anderer Thread steuert; Damit gibt es eine Möglichkeit, die Ausführung der Schleife zu stoppen, ohne das Programm beenden zu müssen.
fast - es wird mindestens 1000. Es hängt davon ab, wenn der Thread-Scheduler beschließt, den Thread erneut zu starten. Es wird 1000 + a + n sein (wobei a die Zeit ist, die der Scheduler benötigt, um den Thread erneut zu aktivieren) – RNJ
Verwenden Sie den folgenden Code:
Timer timer = new Timer();
timer.schedule(new TimerTask()
{
public void run() {
// do your work
}
}, 0, 60*(1000*1));
- 1. Update-Status alle x Sekunden
- 2. jQuery, wie Ereignis alle x Sekunden auftreten?
- 3. Animate SVG Element alle x Sekunden
- 4. Android Loop-Methode alle X Sekunden
- 5. Code alle X Sekunden in Custom LinearLayout
- 6. Unterstützt Docker das Neustarten von Containern alle X Sekunden
- 7. Führen Sie eine Batch-Datei alle x Sekunden mit PowerShell
- 8. Wie aktualisiere ich den Browser alle X Sekunden mit Javascript?
- 9. Wie ändere ich das Hintergrundbild alle X Sekunden?
- 10. Wie aktualisiere ich heute Widget in swift alle x Sekunden
- 11. Bildwechsel alle 30 Sekunden - Schleife
- 12. Zeige alle X Sekunden eine Alarmbox, aber warte Y Sekunden zuerst
- 13. jQuery: Führen Sie AJAX alle X Sekunden für nur 60 Sekunden?
- 14. Selenium für x Sekunden pausieren
- 15. Wie nur notifydatasetchanged() nach x Anzahl der Objekte in x-Sekunden-Sekunden aufrufen?
- 16. Update Fragment alle 30 Sekunden
- 17. JavaScript-Schleife alle 9 Sekunden?
- 18. Code alle 10 Sekunden ausführen, aber auch 0 Sekunden starten
- 19. UIButton Aktionnachher gedrückt für x Sekunden
- 20. Jquery zerstören Dialogfeld nach x Sekunden
- 21. nach x Sekunden mit jquery verblassen div
- 22. Timeout, wenn keine Benutzereingabe für `x` Sekunden
- 23. Flash: AS3 - Pause für x Sekunden?
- 24. Get Textdatei mit FTP alle 10 Sekunden
- 25. AJAX Anfrage bekommen, alle 5 Sekunden aktualisieren
- 26. Schleife MySQLI Abfrage alle num Sekunden
- 27. Datatables aktualisieren einzelne Spalte alle 5 Sekunden
- 28. Timer, der alle 5 Sekunden auslöst
- 29. Emacs - Automatisches Speichern Puffer alle 5 Sekunden
- 30. automatisch alle 30 Sekunden nach Hause zurückkehren
was, wenn ich Hauptfenster der Anwendung zu schließen? Wird diese Aufgabe noch ausgeführt? – Tomasz