Processi e thread

Un'applicazione è costituita da uno o più processi. Un processo, in termini più semplici, è un programma in esecuzione. Uno o più thread vengono eseguiti nel contesto del processo. Un thread è l'unità di base a cui il sistema operativo alloca il tempo del processore. Un thread può eseguire qualsiasi parte del codice del processo, incluse le parti attualmente eseguite da un altro thread.

Un oggetto processo consente la gestione di gruppi di processi come unità. Gli oggetti processo sono oggetti namable, a protezione diretta e condivisibili che controllano gli attributi dei processi associati. Le operazioni eseguite sull'oggetto processo influiscono su tutti i processi associati all'oggetto processo.

Un pool di thread è una raccolta di thread di lavoro che eseguono in modo efficiente callback asincroni per conto dell'applicazione. Il pool di thread viene usato principalmente per ridurre il numero di thread dell'applicazione e fornire la gestione dei thread di lavoro.

Una fibra è un'unità di esecuzione che deve essere programmata manualmente dall'applicazione. Le fibre vengono eseguite nel contesto dei thread che le pianificano.

La pianificazione in modalità utente (UMS) è un meccanismo leggero che le applicazioni possono usare per pianificare i propri thread. I thread UMS differiscono dalle fibre in quanto ogni thread UMS ha un proprio contesto di thread anziché condividere il contesto del thread di un singolo thread.