Junior — Middle
In che modi è possibile implementare la creazione di flussi di dati in Java e in cosa differiscono?
sobes.tech AI
Risposta dell'AI
In Java, la creazione di stream di dati può essere realizzata in diversi modi:
-
Ereditarietà dalla classe Thread
- Crei una classe che estende
Threade sovrascrive il metodorun(). - Avvii il thread chiamando
start().
- Crei una classe che estende
-
Implementazione dell'interfaccia Runnable
- Crei una classe che implementa
Runnablecon il metodorun(). - Passi l'oggetto al costruttore di
Threade lo avvii.
- Crei una classe che implementa
-
Utilizzo di ExecutorService
- Permette di gestire un pool di thread.
- Utile per applicazioni scalabili.
-
Utilizzo di Callable e Future
- Permette di ottenere un risultato dal thread.
Differenze:
- L'ereditarietà da Thread limita l'ereditarietà, poiché Java non supporta l'ereditarietà multipla.
- Runnable è più flessibile, permette di usare la composizione.
- ExecutorService semplifica la gestione dei thread e del loro ciclo di vita.
Esempio con Runnable:
class MyRunnable implements Runnable {
public void run() {
System.out.println("Thread avviato");
}
}
public class Main {
public static void main(String[] args) {
Thread thread = new Thread(new MyRunnable());
thread.start();
}
}