Multicœur et synchronisation
Quelle description de la course aux données (data race) est correcte ?
- APlusieurs threads lisent seulement la même variable simultanément
- BUn thread écrit deux fois de suite dans la même variable
- CPlusieurs threads accèdent simultanément à la même variable sans synchronisation, l’un au moins en écriture
Afficher la réponse et l'explication
Réponse : C. Plusieurs threads accèdent simultanément à la même variable sans synchronisation, l’un au moins en écriture
Une course aux données est une situation où l’ordre des lectures et écritures sur un même emplacement n’est pas fixé par une synchronisation, si bien que le résultat dépend de l’ordre d’exécution. Elle se manifeste ou non selon la temporisation, ce qui en fait un défaut difficile à détecter par les tests. En C et C++, le comportement d’un programme comportant une course aux données est indéfini. Il faut fixer l’ordre par des verrous ou des variables atomiques.
Continuer : 9 autres questions sur Multicœur et synchronisation