Hallo Leute,
ich möchte einen Thread meines Programms jeden Tag um eine bestimmte Uhrzeit starten.
Das Problem ist, dass ich die Laufzeit des Threads im Voraus nicht bestimmen kann, aber unbedingt verhindern will, dass 2 Threads gleichzeitig laufen.
Meine bisherige Suche hat mich auf die java.util.Timer Klasse gebracht.
Dort gibt es die Methode scheduleAtFixedRate, die meine Anforderungen erfüllt, allerdings ein Problem hat:
Kann eine Ausführung nicht planmäßig beginnen, weil noch ein Thread läuft, wird danach versucht dies aufzuholen, was ich nicht möchte:
Habt ihr eine Idee, wie ich mein gewünschtes Verhalten realisieren kann?
Viele Grüße,
Zender
ich möchte einen Thread meines Programms jeden Tag um eine bestimmte Uhrzeit starten.
Das Problem ist, dass ich die Laufzeit des Threads im Voraus nicht bestimmen kann, aber unbedingt verhindern will, dass 2 Threads gleichzeitig laufen.
Meine bisherige Suche hat mich auf die java.util.Timer Klasse gebracht.
Dort gibt es die Methode scheduleAtFixedRate, die meine Anforderungen erfüllt, allerdings ein Problem hat:
Kann eine Ausführung nicht planmäßig beginnen, weil noch ein Thread läuft, wird danach versucht dies aufzuholen, was ich nicht möchte:
(Timer (Java 2 Platform SE 5.0))In fixed-rate execution, each execution is scheduled relative to the scheduled execution time of the initial execution. If an execution is delayed for any reason (such as garbage collection or other background activity), two or more executions will occur in rapid succession to "catch up." In the long run, the frequency of execution will be exactly the reciprocal of the specified period (assuming the system clock underlying Object.wait(long) is accurate).
Habt ihr eine Idee, wie ich mein gewünschtes Verhalten realisieren kann?
Viele Grüße,
Zender