Sobes.tech
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();