Condividi tramite


Programmi multithread

Aggiornamento: novembre 2007

Un thread è fondamentalmente un percorso di esecuzione all'interno di un programma e rappresenta l'unità di esecuzione minima prevista in Win32. Un thread è composto da uno stack, dallo stato dei registri della CPU e da una voce dell'elenco di esecuzione dell'utilità di pianificazione di sistema. Ogni thread condivide tutte le risorse del processo.

Un processo è costituito da uno o più thread, dal codice, dai dati e dalle altre risorse di un programma in memoria. File aperti, semafori e memoria assegnata in modo dinamico sono tipiche risorse di programma. L'esecuzione di un programma avviene quando il controllo dell'esecuzione viene assegnato a uno dei thread dell'utilità di pianificazione di sistema. L'utilità di pianificazione determina quali thread devono essere eseguiti e quando. È possibile che i thread con priorità più bassa debbano attendere che quelli con priorità più alta completino le proprie attività. Su computer multiprocessore, l'utilità di pianificazione è in grado di spostare i vari thread su processori diversi, in modo da bilanciare il carico della CPU.

Ogni thread di un processo opera in modo indipendente. A meno che non li si renda reciprocamente visibili, i thread vengono eseguiti singolarmente, in modo indipendente rispetto agli altri thread del processo. È necessario tuttavia coordinare l'esecuzione dei thread che condividono risorse comuni tramite semafori o altri metodi di comunicazione tra i processi. Per ulteriori informazioni sulla sincronizzazione dei thread, vedere Scrittura di un programma multithread Win32.

Vedere anche

Concetti

Multithreading con C e Win32