La
programmation concurrente est un paradigme de programmation tenant compte, dans un programme, de l'existence de plusieurs piles sémantiques. Ces piles peuvent être appelées
threads,
processus ou tâches. Elles sont matérialisées en machine par une
pile d'exécution et un ensemble de données privées. Les threads disposent d'une zone de mémoire partagée alors que les processus sont strictement isolés.