Task e programmazione concorrente

Un'applicazione può avere più compiti, detti comunemente task, da portare avanti contemporaneamente. Ad esempio, i task di un editor di testo potrebbero essere:

Implementare singolarmente ciascuna di queste attività è relativamente semplice, ma scrivere un programma sequenziale che le faccia tutte è molto più difficile, perchè bisogna fare in modo che esso "salti" da un'attività all'altra e determinare i momenti in cui ciò avviene.

Se, invece, il linguaggio utilizzato offre i costrutti per la programmazione concorrente, cioè i costrutti per

si può guadagnare in termini di:

Programmazione concorrente con i processi

Il linguaggio C (ad esempio) offre funzioni di libreria che consentono di realizzare i flussi mediante processi. Questa soluzione ha però alcuni svantaggi: