Multithreading e Multitasking
Un programma multithread contiene due o più parti che possono essere eseguite contemporaneamente. Ogni parte di un programma di questo tipo viene definita thread e ogni thread definisce un percorso separato di esecuzione. Ne consegue che il multithreading è una forma specializzata di multitasking.
Utilizzo dei Processori Multi-Core
I processori multi-core sono stati progettati per eseguire più programmi o applicazioni ottimizzate per sfruttare i thread contemporaneamente.
Conteggio dei Core e dei Thread
Il conteggio dei core è il numero fisico dei core sulla CPU stessa, mentre il conteggio dei thread è il numero di thread delle singole applicazioni che possono essere eseguiti simultaneamente sulla CPU stessa. Alcuni processori, tuttavia, avranno più thread di quanti ne abbiano i core.
Processi Leggeri e PCB
I thread sono detti processi leggeri perché sono simili a processi reali ma vengono eseguiti nel contesto di un processo e condividono le stesse risorse assegnate al processo dal kernel. Il PCB contiene tutte le informazioni relative al processo.
Concetto di Concorrenza in un Algoritmo
In informatica la concorrenza è una caratteristica dei sistemi di elaborazione nei quali un insieme di processi o sottoprocessi (thread) computazionali è in esecuzione nello stesso istante.