[C/C++] Threads > mutual exclusions, critical sections....

Threads > mutual exclusions, critical sections.... [C/C++] - C++ - Programmation

Marsh Posté le 27-05-2003 à 14:26:55    

   Salut,
 
Je me pose la question quand à l'accès de variables par plusieurs threads :
Est-ce uniquement l'écriture qui pose problème, j'entends par là a-ton besoin de mutex / ... pour simplement faire lire une variable par les multipes threads?  Ou alors dès que l'on veut utiliser la variable aussi bien en lecture / écriture, il faut utiliser les mutex ?
 
merci
    ANT

Reply

Marsh Posté le 27-05-2003 à 14:26:55   

Reply

Marsh Posté le 27-05-2003 à 14:30:03    

ANTSite a écrit :

   Salut,
 
Je me pose la question quand à l'accès de variables par plusieurs threads :
Est-ce uniquement l'écriture qui pose problème, j'entends par là a-ton besoin de mutex / ... pour simplement faire lire une variable par les multipes threads?  Ou alors dès que l'on veut utiliser la variable aussi bien en lecture / écriture, il faut utiliser les mutex ?
 
merci
    ANT


Une mutex n'est utile que dans le cas ou un de tes threads va modifier la variable...s'il n'y a que des lectures je vois pas l'intéret!

Reply

Marsh Posté le 27-05-2003 à 14:31:25    

Ben en lecture c pas nécessairement utile, tout dépend de ce qu'on fait, enfin vaut peut être mieux empécher les autres d'écrire en même temps qu'on lit :D


---------------
Le Tyran
Reply

Marsh Posté le 27-05-2003 à 14:32:14    

skeye a écrit :


Une mutex n'est utile que dans le cas ou un de tes threads va modifier la variable...s'il n'y a que des lectures je vois pas l'intéret!


 
 [:plusun] Enfin tu va bien être obligé d'écrire dans cette variable à un moment ou à un autre, si non son utilité me semble limitée :D


---------------
Le Tyran
Reply

Marsh Posté le 27-05-2003 à 14:34:02    

LetoII a écrit :


 
 [:plusun] Enfin tu va bien être obligé d'écrire dans cette variable à un moment ou à un autre, si non son utilité me semble limitée :D


peut-etre avant de créer les threads (possible ca? ca fait longtemps que j'ai pas touché tout ca...)

Reply

Marsh Posté le 27-05-2003 à 14:34:23    

oui et donc est-ce que on est obligé de protéger à la fois celui qui veut lire et celui qui veut écrire ou on en protège juste un, j'entends par protéger, mettre un critical section ou autre...

Reply

Marsh Posté le 27-05-2003 à 14:37:13    

skeye a écrit :


peut-etre avant de créer les threads (possible ca? ca fait longtemps que j'ai pas touché tout ca...)


 
Oui y a cette possibilité.
 
 


---------------
Le Tyran
Reply

Marsh Posté le 27-05-2003 à 14:37:57    

ANTSite a écrit :

oui et donc est-ce que on est obligé de protéger à la fois celui qui veut lire et celui qui veut écrire ou on en protège juste un, j'entends par protéger, mettre un critical section ou autre...


 
Ben si tu as des accés en lecture et en écriture qui sont concutrents vaut mieux protéger la lecture et l'écriture.


---------------
Le Tyran
Reply

Marsh Posté le 27-05-2003 à 14:38:29    

ANTSite a écrit :

oui et donc est-ce que on est obligé de protéger à la fois celui qui veut lire et celui qui veut écrire ou on en protège juste un, j'entends par protéger, mettre un critical section ou autre...


Les 2...sinon je vois pas l'intéret!
Si ta variable est en cours de modif il ne faut pas qu'elle soit lue, et inversement!

Reply

Marsh Posté le 27-05-2003 à 18:13:51    

si c'est des opérations atomiques, inutile de mettre des sections critiques.
 
avec des opérations sur la stl aussi (écriture et/ou lecture), apparemment pas besoin de sections critiques. (c'est ce qu'on m'a dit, apres chuis pas allé vérifier)

Reply

Marsh Posté le 27-05-2003 à 18:13:51   

Reply

Marsh Posté le 28-05-2003 à 08:14:15    

Konar a écrit :

si c'est des opérations atomiques, inutile de mettre des sections critiques.
 
avec des opérations sur la stl aussi (écriture et/ou lecture), apparemment pas besoin de sections critiques. (c'est ce qu'on m'a dit, apres chuis pas allé vérifier)


il ne faut pas croire tout ce que l'on te dit. La STL est censée supporter le multithreading mais c'est à l'utilisateur de protéger les accès dans ce cas.
Dire que la STL doit supporter le multithreading peut paraître évident, mais ce n'est par pas exemple pas le cas des templates map de la stl de microsoft fournie avec VC6. Il faut appliquer un patch pour que ce soit le cas.

Reply

Marsh Posté le 28-05-2003 à 10:27:29    

sowhatin22 a écrit :


il ne faut pas croire tout ce que l'on te dit. La STL est censée supporter le multithreading mais c'est à l'utilisateur de protéger les accès dans ce cas.
Dire que la STL doit supporter le multithreading peut paraître évident, mais ce n'est par pas exemple pas le cas des templates map de la stl de microsoft fournie avec VC6. Il faut appliquer un patch pour que ce soit le cas.


 
de toute facon j'ai cru comprendre qu'il fallait eviter la stl avec vc6. avec le 7 la c'est mieux

Reply

Marsh Posté le 28-05-2003 à 10:30:17    

Konar a écrit :


 
de toute facon j'ai cru comprendre qu'il fallait eviter la stl avec vc6. avec le 7 la c'est mieux

tiens j'aurais tenu le raisonnement inverse  :whistle:  :lol:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed