Jakie jest zastosowanie metody join() w klasie Thread w Javie?

Metoda join() w klasie Thread w języku Java odgrywa kluczową rolę w zarządzaniu wielowątkowością. Pozwala ona na oczekiwanie w bieżącym wątku na zakończenie wykonania innego wątku. Dzięki temu programista ma kontrolę nad kolejnością wykonywania wątków, co jest szczególnie przydatne w sytuacjach, gdzie wymagane jest, aby pewne operacje zostały ukończone przed innymi.

Przykład użycia metody join()

Poniżej znajduje się kompleksowy przykład, w którym tworzone są dwa wątki. Główny wątek programu czeka na ich zakończenie przed wyświetleniem komunikatu końcowego.

// Klasa rozszerzająca Thread
class MyThread extends Thread {
    private String threadName; // Nazwa wątku

    // Konstruktor z nazwą wątku
    MyThread(String name) {
        this.threadName = name; // Inicjalizacja nazwy wątku
    }

    // Metoda uruchamiająca działanie wątku
    public void run() {
        try {
            for (int i = 0; i < 5; i++) {
                // Symulacja czasochłonnej operacji
                Thread.sleep(400);
                // Wyświetlanie informacji o działaniu
                System.out.println(threadName + " jest uruchomiony: " + i);
            }
        } catch (InterruptedException e) {
            // Obsługa przerwania wątku
            System.out.println(threadName + " został przerwany.");
        }
        // Komunikat o zakończeniu wątku
        System.out.println(threadName + " zakończył działanie.");
    }
}

public class Main {
    public static void main(String[] args) {
        // Tworzenie wątków
        MyThread thread1 = new MyThread("Wątek 1");
        MyThread thread2 = new MyThread("Wątek 2");

        // Uruchomienie wątków
        thread1.start();
        thread2.start();

        try {
            // Oczekiwanie na zakończenie wątków
            thread1.join(); // Oczekiwanie na wątek 1
            thread2.join(); // Oczekiwanie na wątek 2
        } catch (InterruptedException e) {
            // Obsługa wyjątku przerwania
            System.out.println("Główny wątek został przerwany.");
        }

        // Komunikat po zakończeniu wszystkich wątków
        System.out.println("Wszystkie wątki zakończyły działanie.");
    }
}

Podsumowanie

Metoda join() jest niezwykle przydatna w zarządzaniu zależnościami między wątkami w aplikacji wielowątkowej. Umożliwia synchronizację wątków poprzez zapewnienie, że wątek, na którym została wywołana metoda join(), zostanie zatrzymany do czasu zakończenia wątku, którego dotyczy join(). Jest to kluczowe dla zapewnienia, że określone sekwencje zadań zostaną przetworzone w odpowiedniej kolejności.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Java w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top