Sobes.tech
Junior — Middle

Quali implementazioni dell'interfaccia ExecutorService conosci e in cosa si differenziano?

sobes.tech AI

Risposta dell'AI

ExecutorService è un'interfaccia per gestire un pool di thread e l'esecuzione asincrona di compiti. Le principali implementazioni della libreria standard Java:

  • ThreadPoolExecutor — l'implementazione più flessibile e comunemente usata, permette di configurare la dimensione del pool, la coda delle attività e la politica di gestione del sovraccarico.
  • ScheduledThreadPoolExecutor — un'estensione di ThreadPoolExecutor, supporta la pianificazione di compiti con ritardo o esecuzione periodica.
  • ForkJoinPool — destinato a compiti che possono essere suddivisi in sottocompiti (usato nel framework Fork/Join), efficiente per calcoli paralleli.

Differenze:

  • ThreadPoolExecutor è adatto per scopi generali.
  • ScheduledThreadPoolExecutor — per compiti con timer.
  • ForkJoinPool — per parallelismo ricorsivo.

Esempio di creazione di ThreadPoolExecutor:

ExecutorService executor = Executors.newFixedThreadPool(4);
executor.submit(() -> System.out.println("Compito completato"));
executor.shutdown();