Programovací jazyk Java
8. přednáška

Obsah

Vlákna

Třída Thread

Metody pro práci s vlákny

Metoda void interrupt()

Stavy vlákna

Rozhraní Runnable

Příklad: Spolupráce dvou vláken: první vlákno vypíše na std. výstup slovo START, pak spustí druhé vlákno a po jeho skončení vypíše STOP. Druhé vlákno vypíše v třísekundových intervalech čísla 1, 2 a 3.

public class Vlakno123 implements Runnable {
    @Override
    public void run() {
        for (int i = 1; i <= 3; i++) {
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                System.out.println("Jsem vzhuru!");
            }
            System.out.println(i);
        }
    }
}


public class StartStop extends Thread {

    Thread vlakno123;

    public StartStop(Runnable vlakno123) {
        this.vlakno123 = new Thread(vlakno123);
    }

    @Override
    public void run() {
        System.out.println("START");
        vlakno123.start();
        try {
            vlakno123.join();
        } catch (InterruptedException ex) {
            System.out.println("Čekání na dokončení vlákna 123 přerušeno.");
        }
        System.out.println("STOP");
    }

    public static void main(String[] args) {
        Vlakno123 v123 = new Vlakno123();
        new StartStop(v123).start();
    }
}

Priorita vlákna

Vlákna typu démon

Monitor, synchronizace

The End