2.1. Spuštění vlákna

src/Vlakno.java
Příklad 2.1. Spuštění vlákna v jazyce Java

Následující program spustí dvě vlákna. Každé vlákno vypíše pětkrát řádek se svým jménem a skončí. Metoda yield třídy java.lang.Thread umožní, aby mohla běžet i jiná vlákna.

class Vlakno extends Thread {
   Vlakno(String jmeno) {
      super(jmeno);
   }

   public void run() {
      for(int i = 0; i < 5; i++ ) {
         System.out.println("Vlakno: " + getName());
         yield();
      }
   }

   public static void main(String[] args) {
      Vlakno v1 = new Vlakno("v1");
      Vlakno v2 = new Vlakno("v2");
      v1.start();
      v2.start();
   }
}
src/Cekani.java
Příklad 2.2. Pozastavení činnosti vlákna - metoda sleep

V této variantě je vlákno vytvořeno přímo jako instance třídy Thread, přičemž konstruktoru je předána instance třídy Cekani, implementující rozhraní java.lang.Runnable. Toto rozhraní obsahuje pouze metodu run. Vlákno opakovaně vypisuje své jméno a poté čeká zadanýpočet milisekund. Čekání může být přerušeno výjimkou InterruptedException, kterou je třeba odchytit.

class Cekani implements Runnable {
   int interval;
   String jmeno;

   Cekani(String jmeno, int interval) {
      this.jmeno = jmeno;
      this.interval = interval;
   }

   public void run() {
      while( true ) {
         System.out.println("Vlakno: " + jmeno);
         try {
            Thread.sleep(interval);
         } catch( InterruptedException e ) {
            return;
         }
      }
   }

   public static void main(String[] args) {
      Thread v1 = new Thread(new Cekani("v1", 500));
      Thread v2 = new Thread(new Cekani("v2", 1000));
      v1.start();
      v2.start();
   }
}