WinFuture-Forum.de: Java Schedule - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Java Schedule


#1 Mitglied ist offline   `Jimmy 

  • Gruppe: aktive Mitglieder
  • Beiträge: 80
  • Beigetreten: 18. Oktober 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Leipzig

geschrieben 14. September 2012 - 11:53

Hallo leibe WinFuture'ler,

ich nutze die Methode schedule der Klasse Timer(java.util.Timer).

Ich nutze den Konstruktor mit 3 Parameter: schedule(New Task(), long Wartezeit, long Intervall);

Meine Frage: Endet der Prozess nach dem Ende des Intervalls? So ungefähr:

schedule(New Task(), 1000, 1000);
+++schedule start+++
1 Sekunde später
+++Task start+++
1 Sekunde später
+++Task stirbt+++
+++Task start+++
1 Sekunde später
+++Task stirbt+++
+++Task start+++
usw.

oder lebt der Prozess solange wie er ausgeführt wird? Danke euch für eure Zeit.
Liebe Grüße Jimmy!
0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 14. September 2012 - 15:13

Ich würde stattdessen den ScheduledExecutorService einsetzen, der ist flexibler in solchen Dingen.

Mit ihm kannst du auch beide Formen durchführen: Entweder die Tasks werden bspw. exakt jede Sekunde ausgeführt oder es wird erst dann eine Sekunde gewartet, nachdem der vorherige Task beendet worden ist.

Die Implementierung der zweiten Varianten kann wie folgt aussehen:

final ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();

service.scheduleWithFixedDelay(new Runnable() {System.out.println("Hello!");}, 1l, 1l, TimeUnit.SECONDS);



Möchtest du die erste Variante, musst du lediglich service.scheduleAtFixedRate() aufrufen.

Der Service läuft solange, bis du bspw. die shutdown-Methode aufgerufen hast.

Ich hoffe, das hilft dir weiter!
1

#3 Mitglied ist offline   `Jimmy 

  • Gruppe: aktive Mitglieder
  • Beiträge: 80
  • Beigetreten: 18. Oktober 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Leipzig

geschrieben 15. September 2012 - 13:40

Danke Witi, nach soetwas hatte ich gesucht.
Ich habe noch herausgefunden dass die Methode schedule() nur die run()-Methode erneut ausführt, das Objekt dass TimerTask extended bleibt dauerhaft am leben nachdem es einmal initialisiert wurde.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0