Co oznacza współbieżność w kontekście programowania w Java?

Współbieżność w programowaniu to zdolność programu do wykonywania wielu części kodu jednocześnie, co pozwala na lepsze zarządzanie zasobami i szybsze przetwarzanie. W Javie współbieżność jest realizowana głównie za pomocą wątków, które są lekkimi procesami wykonującymi się równolegle w ramach większego programu.

Przykład kodu z komentarzami

Poniżej znajduje się przykład, w którym tworzone są dwa wątki w Javie. Każdy wątek wykonuje prostą czynność: jeden wątek zlicza w dół, a drugi zlicza w górę. Przykład pokazuje, jak można zorganizować kod, aby wątki pracowały równolegle, co ilustruje podstawy współbieżności.

public class ConcurrencyExample {

    public static void main(String[] args) {
        // Tworzenie instancji zadania dla wątków
        CountDownTask countDown = new CountDownTask();
        CountUpTask countUp = new CountUpTask();

        // Tworzenie wątków z określonymi zadaniami
        Thread threadOne = new Thread(countDown);
        Thread threadTwo = new Thread(countUp);

        // Uruchamianie wątków
        threadOne.start();
        threadTwo.start();
    }
}

// Klasa definiująca zadanie odliczania w dół
class CountDownTask implements Runnable {
    @Override
    public void run() {
        // Pętla odliczająca od 10 do 1
        for (int i = 10; i > 0; i--) {
            System.out.println("Count Down: " + i);
            try {
                // Uśpienie wątku na 500 ms
                Thread.sleep(500);
            } catch (InterruptedException e) {
                System.out.println("Thread interrupted");
            }
        }
    }
}

// Klasa definiująca zadanie odliczania w górę
class CountUpTask implements Runnable {
    @Override
    public void run() {
        // Pętla odliczająca od 1 do 10
        for (int i = 1; i <= 10; i++) {
            System.out.println("Count Up: " + i);
            try {
                // Uśpienie wątku na 500 ms
                Thread.sleep(500);
            } catch (InterruptedException e) {
                System.out.println("Thread interrupted");
            }
        }
    }
}

Podsumowanie

W powyższym przykładzie zaprezentowano podstawy tworzenia i uruchamiania wątków w Javie, co jest kluczowym aspektem współbieżności. Wykorzystanie wątków umożliwia programowi wykonanie wielu zadań jednocześnie, co może przyczynić się do zwiększenia efektywności i responsywności aplikacji. Współbieżność jest potężnym narzędziem, ale wymaga odpowiedniej wiedzy i ostrożności, aby uniknąć problemów takich jak warunki wyścigu, zakleszczenia czy inne problemy z synchronizacją.

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