Dans un système multitâche, plusieurs flots d'exécutions, appelés processus légers, s'exécutent simultanément.
Il est alors nécessaire d'assurer la synchronisation de ces flots d'exécution. Dans la plupart des langages, c'est fait par des bibliothèques externes, certains d'entre eux intègrent néanmoins des structures de contrôle permettent d'agir sur des taches concourantes.
Exemples d'implémentations: