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();