que j'ai également du mal à traduire, plus particulièrement "race conditions". En effet, "conditions de participation à une course" ne me parait pas très approprié.
A+
Hehehe. Ce n'est pas le texte le plus facile à traduire.
"Race conditions" se traduit fréquement par "Accès concurrents".
C'est un problème qui apparait lorsque plusieurs processus ou threads accèdent aux mêmes ressources en même temps. Si trois processus essaient d'incrémenter une même variable, et que ces processus sont bien synchronisés, il vont tout trois lire la même variable (donc la même valeur), puis incrémenter cette valeur et enfin tout trois mettre à jour la variable avec la même valeur incrémentée.
Bilan des courses, c'est le cas de le dire, la variable aura été globalement incrémentée d'une seule unité au lieu de trois. Pour éviter ces désagréments, on s'arrange en général pour que ces "sections critiques" deviennent "atomiques" (ie: indivisibles et ininterruptibles). Inconviénient: les autres processus sont mis en attente lorsqu'ils essaient d'accéder à cette ressource, et l'on perd tout l'intéret du traitement en parallèle.
On implémente en général cela avec un "Mutex". Lorsque cela doit être mis en place entre plusieurs processus distincts, on utilise en général (sous Unix) les "sémaphores" proposés par les IPCs SysV.
Amitiés à tous.