Podaj klasy i interfejsy wykorzystywanie przy wielowątkowości w Javie

Definicja pojęcia Podaj klasy i interfejsy wykorzystywanie przy wielowątkowości w Javie
Metodyki
Definicja Agile

Podaj klasy i interfejsy wykorzystywanie przy wielowątkowości w Javie


Klasy:

Thread: Jest to klasa reprezentująca wątek. Można utworzyć nowy wątek, dziedzicząc z klasy Thread i przesłaniając metodę run().

				
					class MyThread extends Thread {
    public void run() {
        // Kod do wykonania w wątku
    }
}

				
			

Runnable: Jest to interfejs funkcyjny, który definiuje jedną metodę run(). Można użyć go do utworzenia wątku, przekazując obiekt implementujący ten interfejs do konstruktora Thread.

				
					class MyRunnable implements Runnable {
    public void run() {
        // Kod do wykonania w wątku
    }
}

// Tworzenie wątku i przekazanie obiektu Runnable
Thread thread = new Thread(new MyRunnable());

				
			

ExecutorService: Jest to interfejs, który zapewnia wygodne API do zarządzania pulą wątków. Umożliwia on uruchamianie zadań asynchronicznie i zarządzanie ich cyklem życia.

				
					ExecutorService executor = Executors.newFixedThreadPool(5);
executor.submit(new MyRunnable());

				
			

Interfejsy:

Runnable: Jak wspomniano powyżej, jest to interfejs funkcyjny zawierający jedną metodę run(), która definiuje zadanie, które ma być wykonane w oddzielnym wątku.

Callable: Jest to interfejs funkcyjny, który jest podobny do Runnable, ale zwraca wynik. Metoda call() zwraca wynik typu generycznego.

				
					class MyCallable implements Callable<String> {
    public String call() {
        // Kod do wykonania w wątku
        return "Wynik";
    }
}

				
			

Interfejsy:

Runnable: Jak wspomniano powyżej, jest to interfejs funkcyjny zawierający jedną metodę run(), która definiuje zadanie, które ma być wykonane w oddzielnym wątku.

Callable: Jest to interfejs funkcyjny, który jest podobny do Runnable, ale zwraca wynik. Metoda call() zwraca wynik typu generycznego.

				
					ExecutorService executor = Executors.newSingleThreadExecutor();
Future<String> future = executor.submit(new MyCallable());
String result = future.get(); // Pobranie wyniku

				
			

Lock: Jest to interfejs reprezentujący blokadę, która może być używana do synchronizacji dostępu do współdzielonych zasobów przez wątki.

				
					Lock lock = new ReentrantLock();
lock.lock();
try {
    // Krytyczna sekcja
} finally {
    lock.unlock();
}

				
			

Te klasy i interfejsy stanowią podstawę dla programowania wielowątkowego w Javie, pozwalając programistom na tworzenie aplikacji, które wykorzystują równoległe przetwarzanie i zarządzanie współbieżnością.

Free

Pytania rekrutacyjne JavaScript

Free

Pytania rekrutacyjne Spring Framework 

Free

Java pytania rekrutacyjne

Scroll to Top