Variables partagées entre deux threads

cs_Ngos Messages postés 2 Date d'inscription samedi 30 septembre 2006 Statut Membre Dernière intervention 19 juillet 2008 - 5 mars 2007 à 14:38
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 5 mars 2007 à 16:10
bonjour j'ai creé 4 threads avec CreateThread(...) sur win32 (devcpp) la variable modifiée par un thread n'est pas vu par les autres que faire pour que la variable modifiée soit vue par tous les threads merci d'avance

1 réponse

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
5 mars 2007 à 16:10
Salut,


Les thread partagent le même code et le même tas. Les variable locales
(non statiques) étant dans la pile, on ne peut pas y accéder à partir
d'autre thread (Ptêt bin que si en fait, mais ce serait bien sale). Les
variables globales sont dans le tas, donc accessibles à tous les
threads.


Mais attention ! Les thread sont a manipuler avec une extrème
précaution pour ce qui est d'en laisser plusieurs accéder aux mêmes
variables !


Il faut utiliser différents mécanismes bien connus (Sémaphores...) pour
s'assurer qu'aucun thread ne peut lire ou écrire la variable quand un
trhead est en train de la modifier. Sinon, les autres trheads ont une
chance infime d'affecter la variable bizarrement (Ecriture simultanée),
ou de trouver n'importe quoi dans la variable (Ecriture et lecture
simultanée).
0
Rejoignez-nous