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

  FORUM HardWare.fr
  Programmation
  C++

  Quelles opérations courantes sont sûres en multithread ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Quelles opérations courantes sont sûres en multithread ?

n°2017922
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 19-08-2010 à 14:54:02  profilanswer
 

J'ai une question assez simple, j'accepte avec joie les liens google en guise de réponse : Quelles opérations élémentaires sont sûres dans le cadre d'un programme à plusieurs fils d'exécution ?

 

Par exemple, si j'ai un objet utilisé dans mes deux fils d'exécution, j'effectue une lecture/écriture d'un membre dans chacun des deux, est-ce nécessaire de verrouiller cette opération élémentaire ?

 

idem si je fais simplement un incrément d'une variable, ou peut-être d'autres opérations que je n'ai pas en tête ?


Message édité par hephaestos le 19-08-2010 à 15:03:27
mood
Publicité
Posté le 19-08-2010 à 14:54:02  profilanswer
 

n°2017929
Un Program​meur
Posté le 19-08-2010 à 14:59:31  profilanswer
 

Aucune.  Il faut synchroniser explicitement ou bien passer par des types/operations speciales.


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°2017930
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 19-08-2010 à 15:03:07  profilanswer
 

[:xqwzts]  
 
C'est quoi que t'appelles synchroniser explicitement et types/opérations spéciales ?

n°2017934
Un Program​meur
Posté le 19-08-2010 à 15:09:53  profilanswer
 

Si deux operations peuvent agir sur le meme emplacement memoire, soit tu synchronises pour ne pas les faire en meme temps, soit tu utilises des types (genre les atomic<> de C++0X) ou des operations (genre primitives InterlockedInc).


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°2019038
el muchach​o
Comfortably Numb
Posté le 26-08-2010 à 00:28:52  profilanswer
 

Parmi les liens intéressants, il y a ceux de Herb Sutter qui se fait l'avocat du message passing (messages asynchrones, où au lieu de bloquer les threads sur de la mémoire partagée (synchronisation), on fait de l'envoi de messages entre threads qui les traitent un à un sans bloquer, ou seulement quand ils sont en attente d'un résultat), et des queues pour le multithreading pour le partage d'objets. Ma petite expérience du multithreading en Java me dit que c'est aussi une, voire la bonne démarche, qui simplifie nettement l'analyse et réduit les risques de bugs, surtout quand le nombre de threads augmente, et pas mal de problèmes peuvent se modéliser avec ces paradigmes.
Perso, je les privilégie autant que faire se peut par rapport aux techniques de synchronisation explicite.

 

Les 3 articles ci-dessous sont assez illuminants:
http://www.drdobbs.com/high-perfor [...] /215900465
http://www.drdobbs.com/go-parallel [...] =226700179
http://www.drdobbs.com/go-parallel [...] =225700095
A noter que les bases de toutes ces techniques sont implémentées depuis longtemps en Java et probablement en C#, et ont montré leur efficacité depuis belle lurette.

 

Sinon, plein d'articles intéressants sur la prog multithread:
http://www.drdobbs.com/go-parallel [...] =224701827
http://herbsutter.com/2009/01/12/e [...] -volatile/


Message édité par el muchacho le 26-08-2010 à 01:06:13

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien

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

  Quelles opérations courantes sont sûres en multithread ?

 

Sujets relatifs
question sur static et multithreadOpérations sur chaines dans un fichier
effectuer des opérations sur les matrices...[C] Opérations avec des matrices
Multithread et core 2 duoEffectuer des opérations sur la colonne/ligne d'un tableau
livre multithread ?multithread python
Questions C++ : prog Linux/Windows, multitache/multithread[C# .NET] Probleme client server multithread
Plus de sujets relatifs à : Quelles opérations courantes sont sûres en multithread ?


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