Sobes.tech
Junior — Middle

Кои реализации на интерфейса ExecutorService познаваш и как се различават?

sobes.tech AI

Отговор от AI

ExecutorService е интерфейс за управление на пул от нишки и асинхронно изпълнение на задачи. Основните реализации от стандартната библиотека на Java:

  • ThreadPoolExecutor — най-гъвкавата и често използвана реализация, позволява конфигуриране на размера на пула, опашката с задачи и политиката за обработка на претоварване.
  • ScheduledThreadPoolExecutor — разширение на ThreadPoolExecutor, поддържа планиране на задачи с забавяне или периодично изпълнение.
  • ForkJoinPool — предназначен за задачи, които могат да бъдат разделени на подзадачи (използва се във Fork/Join framework), ефективен за паралелни изчисления.

Разлики:

  • ThreadPoolExecutor е подходящ за общи цели.
  • ScheduledThreadPoolExecutor — за задачи с таймери.
  • ForkJoinPool — за рекурсивен паралелизъм.

Пример за създаване на ThreadPoolExecutor:

ExecutorService executor = Executors.newFixedThreadPool(4);
executor.submit(() -> System.out.println("Задачата е изпълнена"));
executor.shutdown();