cs_Ngos
Messages postés2Date d'inscriptionsamedi 30 septembre 2006StatutMembreDernière intervention19 juillet 2008
-
5 mars 2007 à 14:38
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDerniè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
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 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).