En
programmation concurrente, la
synchronisation se réfère à deux concepts distincts mais liés : la synchronisation de
processus et la synchronisation de
données. La synchronisation de
processus est un mécanisme qui vise à bloquer l'exécution de certains
processus à des points précis de leur
flux d'exécution, de manière que tous les processus se rejoignent à des étapes relais données, tel que prévu par le programmeur. La synchronisation de données, elle, est un mécanisme qui vise à conserver la
cohérence des données telles que vues par différents processus, dans un environnement multitâche. Initialement, la notion de synchronisation est apparue pour la synchronisation de données.