Cette séance de cours traite du verrouillage des primitives essentielles pour éviter les conditions de course dans la programmation multithread. Il commence par expliquer les problèmes liés à la planification incontrôlée des threads et les conditions de course qui peuvent affecter l'exactitude du programme. L'instructeur met l'accent sur la nécessité d'opérations atomiques pour s'assurer que les sections critiques du code sont exécutées sans interférence d'autres threads. Le concept d’exclusion mutuelle est introduit, soulignant comment les serrures peuvent être utilisées pour protéger les sections critiques. La séance de cours couvre divers types de serrures, y compris les serrures interruptibles et les serrures à fil, détaillant leurs implémentations et leurs limites. L'instructeur explique également l'importance du support matériel pour les opérations atomiques, en introduisant des primitives telles que test-and-set et compare-and-swap. Ces instructions matérielles aident à mettre en œuvre des mécanismes de verrouillage qui assurent l'exclusion mutuelle, mais peuvent conduire à des problèmes d'équité, tels que la famine. La séance de cours se termine en discutant des inefficacités des verrous de spin et de l'importance de choisir des stratégies de verrouillage appropriées dans la programmation concurrente.