Bonjour � tous,
J'explique mon petit probl�me � l'aide d'un exemple simple. Je suis certain que la r�ponse est aussi tr�s simple.
Admettons que nous ayons 3 threads dans un processus: soit les threads A, B et C. Chaque thread peut manipuler une liste unique, celle-ci est donc partag�e entre ces 3 threads.
Les threads A et B ne font que lire dans la liste. Par contre le thread C effectue une �criture (ajoute ou retire des �l�ments).
Je ne veux pas introduire de synchronisation entre A et B puisque ces threads ne font qu'une lecture. Le thread C, par contre, doit pouvoir �crire dans la liste d�s que possible. Pendant cette �criture, ni A, ni B ne peut lire au risque de manipuler une valeur aberrante.
En d�veloppant un peu le probl�me, je peux dire que le thread C doit donc attendre qu'il n'y ait plus de lecture avant de pouvoir �crire. D�s que le thread C �crit, les threads de lecture A et B ne peuvent plus lire pendant toute la dur�e de l'�criture.
J'ai r�sum� le probl�me en utilisant 2 threads de lecture. Dans un cas pratique, je peux en avoir bien plus.
Que faudrait-il utiliser comme m�thode?
Quel objet de synchronisation est le plus adapt� (mutex, s�maphore, section critique, etc.)?
Des suggestions?
Merci pour vos remarques, vos id�es, etc.![]()
Partager