Bonjour à tous,
voila si j'ai 2 thread qui ont besoin d'une meme ressource. Le premier thread exécute l'instruction
il va donc lire un attribut de l'objet de la class std::mutex, et si l'attribut n'est pas verrouillé par le second thread, alors le premier thread va mettre un attribut à True en modifiant dans la RAM la valeur d'un attribut pour verrouiller le mutex. Si le second thread tombe sur l'instruction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part mutex.lock();
le second thread devra attendre (car instruction bloquante) que le premier thread déverrouille le mutex pour pouvoir acceder à la ressource. C'est le comportement normale que l'on souhaite avoir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part mutex.lock();
Mais est ce possible qu'on arrive dans le cas ou le premier thread voit que le mutex n'est pas verrouillé, le verrouille, mais qu'en parallèle le second thread était en train d'écrire dans la RAM pour mettre l'attribut à verrouiller, et on serait dans le cas ou les 2 threads on accès à la meme ressource mémoire ?
Merci d'avance pour vos réponses
Partager