Timer (1): Schlagzeug auf der Konsole

Sie wissen sicher, dass man mit Thread.sleep(int ms) kleine Pausen im Programmablauf erzeugen kann. In Verbindung mit einer Schleife kann man diese Pausen nutzen, um Animationen und rhythmische Ereignisse zu erzeugen. Besser geht das allerdings mit einem Timer aus der java.utilities-Bibliothek. Der ist sogar auf der Konsole einsetzbar.

Probieren Sie das folgende Programm. Beachten Sie:
Um den Timer zu jutzen, muss die Bibliothek java.util.* importiert werden.
Am Anfang des Programms wird ein Timer-Objekt angelegt. Soll der Timer - wie hier aus der main-Methode heraus gestartet werden, muss es als static deklariert sein.

Ein und derselbe Timer kann mehrere Tasks kontollieren.
Verwenden Sie, um einen Timer für einmalige Tasks einzurichten, die Methode schedule(...).
Sie wird hier genutzt, um alle Aktivitäten des Timers anzuhalten.
Periodische Timertasks werden mit der Methode scheduleAtFixedRate(...) in Gang gesetzt.


import java.util.*;

public class TimerInterrupt {

  static final Timer timer = new Timer();

  static TimerTask task1 = new TimerTask() {
    public void run() {
    timer.cancel();
  }};

  static TimerTask task2 = new TimerTask() {
    public void run() {
    System.out.print("\nbumm ");
  }};

  static TimerTask task3 = new TimerTask() {
    public void run() {
    System.out.print("ta ");
  }};

  public static void main(String[] args) throws Exception {
    System.out.println("Timer-Demo");
    timer.schedule(task1,5000);
    timer.scheduleAtFixedRate(task2, 0, 200);      // Millisekunden
    timer.scheduleAtFixedRate(task3, 0, 100);      // Millisekunden
  }
}


 

Aufgaben: