|
Una applicazione Single Thread viene eseguita in modo perfettamente sequenziale (una operazione dietro l'altra). Alcune applicazioni trovano giovamento dall'eseguire azioni separate in thread separati (Multi Thread), così che se uno dei thread si trova in attesa di qualcosa, gli altri possono andare avanti. Per esempio in un ambiente di sviluppo di un linguaggio, la compilazione del codice potrebbe essere in un thread separato, così che mentre il programma viene compilato, l'utente può scorrere il codice nell'editor e accedere all'help.
Attenzione che i PROCESSI (in senso stretto) sono una cosa diversa. In genere un PROCESSO è caratterizzato da un suo spazio di indirizzamento e dalle sue risorse di sistema. Due processi diversi avranno quindi una propria area di memoria e le proprie risorse di sistema. All'interno del processo possono essere creati i THREAD, che condividono tutti area di memoria e risorse di sistema del processo padre.
Il sistema operativo MULTITASKING si occupa di assegnare ai vari thread dei vari processi una fetta di tempo predefinita.
Ci sono poi le FIBER, una sorta di THREAD che però possono essere schedulate manualmente dall'applicazione.
|