Junior — Middle
Jakie implementacje interfejsu ExecutorService znasz i czym się różnią?
sobes.tech AI
Odpowiedź od AI
ExecutorService to interfejs do zarządzania pulą wątków i wykonywania zadań asynchronicznych. Główne implementacje z biblioteki standardowej Java:
- ThreadPoolExecutor — najbardziej elastyczna i często używana implementacja, pozwala na konfigurowanie rozmiaru puli, kolejki zadań i polityki obsługi przeciążenia.
- ScheduledThreadPoolExecutor — rozszerzenie ThreadPoolExecutor, obsługuje planowanie zadań z opóźnieniem lub wykonywanie periodyczne.
- ForkJoinPool — przeznaczony do zadań, które można dzielić na podzadania (używany w frameworku Fork/Join), skuteczny w obliczeniach równoległych.
Różnice:
- ThreadPoolExecutor nadaje się do ogólnych zastosowań.
- ScheduledThreadPoolExecutor — dla zadań z timerami.
- ForkJoinPool — dla rekurencyjnego równoległego przetwarzania.
Przykład tworzenia ThreadPoolExecutor:
ExecutorService executor = Executors.newFixedThreadPool(4);
executor.submit(() -> System.out.println("Zadanie wykonane"));
executor.shutdown();