Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
997 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C/C++] Thread et accès à une variable par 2 threads en même temps...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C/C++] Thread et accès à une variable par 2 threads en même temps...

n°380669
antsite
Je me souviens
Posté le 02-05-2003 à 17:57:02  profilanswer
 

  Salut,
Voila je me posais la question: si 2 threads accèdent en même temps à une variable globale, que se passe-t-il ? Oui les variables globales c'est pas le top mais dans un programme C parfois y a pas moyen de faire autrement...
Comment éviter ça ? Passer un argument au thread avec la variable pour ensuite... ben je sais pas comment faire.
En fait je veux quand même que les 2 threads modifient cette variable...

mood
Publicité
Posté le 02-05-2003 à 17:57:02  profilanswer
 

n°380684
Konar
Posté le 02-05-2003 à 18:07:35  profilanswer
 

ANTSite a écrit :

  Salut,
Voila je me posais la question: si 2 threads accèdent en même temps à une variable globale, que se passe-t-il ? Oui les variables globales c'est pas le top mais dans un programme C parfois y a pas moyen de faire autrement...
Comment éviter ça ? Passer un argument au thread avec la variable pour ensuite... ben je sais pas comment faire.
En fait je veux quand même que les 2 threads modifient cette variable...


 
CriticalSection.

n°380710
antsite
Je me souviens
Posté le 02-05-2003 à 18:33:06  profilanswer
 

Oui oui j'ai déjà utilisé, mais je voulais savoir à quoi s'expose-t-on si on ne le fait et si Critical Section est beaucoup employé ou pas dans les app à threads ?

n°380731
chrisbk
-
Posté le 02-05-2003 à 18:47:47  profilanswer
 

ben c koi le pb alors ? critical section et hop... (ou alors tout les autres trucs de synchro)
 
Sinon met ta var globale en volatile
 

n°380745
antsite
Je me souviens
Posté le 02-05-2003 à 18:59:06  profilanswer
 

chrisbk a écrit :

ben c koi le pb alors ? critical section et hop... (ou alors tout les autres trucs de synchro)
 
Sinon met ta var globale en volatile
 
 


 
J'étais assez séduit par volatile mais j'arrive pas trop à m'en servir, une fois ma var en volatile je n'arrive plus à y avoir accès comme d'habitude, par exemple je mets volatile int i;
i= 10;
printf("%d", i); ben ça m'affiche rien...
J'y connais rien à volatile donc c'est peu être un truc tout con...

n°380763
antsite
Je me souviens
Posté le 02-05-2003 à 19:09:05  profilanswer
 

pardon j'avais déclaré comme suit:
volatile int i;
au lieu de int volatile i;  :whistle:

n°380775
mrbebert
Posté le 02-05-2003 à 19:21:09  profilanswer
 

Tout dépend de ce que font les threads avec cette variable.
Parfois, il n'est pas utile d'utiliser de mécanisme de synchronisation. Mais faut faire attention à ce que tu fais :D

n°380997
youdontcar​e
Posté le 02-05-2003 à 23:31:24  profilanswer
 

mrBebert a écrit :

Tout dépend de ce que font les threads avec cette variable.

Yep, si tu es sous win32 :
 
* la lecture d'un dword n'a pas besoin d'être protégée. C'est une opération atomique pour les dwords alignés (que tout compilo win32 se doit de faire)
 
* l'incrément d'un dword / l'échange de 2 dwords peuvent se faire par les fonctions InterlockedXXX() (InterlockedIncrement(), etc)


Message édité par youdontcare le 02-05-2003 à 23:33:38

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C/C++] Thread et accès à une variable par 2 threads en même temps...

 

Sujets relatifs
Taille d'une variable de type "WORD"recuperer une variable $PHP_AUTH_USER
Threads : méthodes dépréciéesComment verifier qu'une variable n'est pas un nombre ? (JavaScript)
[JS] résuperer la selection dans une variable (on y est presque...)[HTML&ASP] Reprise d'une variable d'un form dans un textarea
boucle while indentifiant variable[C/C++] Thread en standard (no API win32)
[PHP] Temps restant avant expiration d'un cookie[Python] Visibilité d'une variable
Plus de sujets relatifs à : [C/C++] Thread et accès à une variable par 2 threads en même temps...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR