# Concetti importanti: Thread

I programmi Java sono composti da thread. Un thread consiste in una sequenza autonoma di esecuzioni all'interno di un programma. All'interno di un programma Java possono essere contemporaneamente in esecuzione più thread che eseguono più azioni. Un programma di questo tipo è denominato programma multithread.

Ciascun thread appartiene a un gruppo. Un gruppo di thread consiste in un raggruppamento logico di thread correlati.

Il gruppo di thread `main` fa parte di ciascun programma. Ogni volta che si utilizza la tastiera, si verifica un'interazione con i thread del gruppo `main`.

All'interruzione di un thread è possibile osservarne lo stack di chiamate. Le informazioni visualizzate costituiscono tuttavia solo l'ultima istantanea dell'esecuzione del thread.

Nello stack di chiamate sono visualizzati tutti i metodi richiamati ma non ancora completati. Il funzionamento di un metodo è simile a quello di una procedura o di una funzione. I metodi nello stack sono visualizzati in base all'ordine di chiamata. Il metodo in esecuzione al momento dell'interruzione del programma si troverà quindi all'inizio dello stack.

Lezione successiva

  Esercizio 1: Avvio di una sessione di debug