Capitolo-11 Flashcards
Gestione dei Thread.
Introduzione ai Thread
Un thread è un singolo flusso di esecuzione all’interno di un programma.
Multithreading
Il multithreading consente l’esecuzione simultanea di più thread per migliorare le prestazioni e la reattività di un programma.
La Classe Thread
La classe Thread viene utilizzata per creare e gestire thread in Java.
Creazione di un Thread
Un thread può essere creato estendendo la classe Thread o implementando l’interfaccia Runnable.
Metodo run()
Il metodo run() contiene il codice che viene eseguito quando un thread viene avviato.
Metodo start()
Il metodo start() avvia l’esecuzione di un thread, chiamando il metodo run() in un nuovo thread di esecuzione.
Stati di un Thread
I thread possono essere in uno dei seguenti stati: New, Runnable, Blocked, Waiting, Timed Waiting, Terminated.
Sincronizzazione
La sincronizzazione è utilizzata per controllare l’accesso concorrente a risorse condivise tra più thread.
Parola Chiave synchronized
La parola chiave synchronized è utilizzata per definire metodi o blocchi sincronizzati, garantendo che solo un thread possa accedere alla risorsa alla volta.
Deadlock
Il deadlock si verifica quando due o più thread si bloccano a vicenda in attesa di risorse.
Wait, Notify e NotifyAll
I metodi wait(), notify() e notifyAll() della classe Object sono utilizzati per la comunicazione tra thread.
Thread Pool
Un thread pool è un gruppo di thread pre-creati che possono essere riutilizzati per eseguire compiti multipli.
Esecuzione Periodica con ScheduledExecutorService
Il ScheduledExecutorService consente di pianificare l’esecuzione periodica di compiti.
Gestione degli Errori nei Thread
Gli errori nei thread devono essere gestiti adeguatamente per evitare comportamenti imprevisti o crash del programma.
Best Practices per il Multithreading
Le best practices includono l’uso di thread pool, la gestione delle eccezioni nei thread e la minimizzazione dell’uso di risorse sincronizzate.