Serrures et mutexes en C ++

J’ai appris le C ++ pendant un moment et je n’ai toujours pas trouvé un bon livre qui pourrait expliquer ce que sont ces bêtes? Sont-ils des fonctionnalités intégrales du C ++? Si c’est le cas, comment se fait-il qu’ils ne soient mentionnés que dans un livre tel que Le langage de programmation C ++ de BS? Sinon, où pouvez-vous obtenir des informations fiables à leur sujet – de préférence un livre (n’aimez pas vraiment les tutoriels Web), comment les définir, comment les utiliser, etc. Merci pour toute aide précieuse.

Les verrous et les mutex sont des structures de concurrence utilisées pour garantir que deux threads n’accèdent pas aux mêmes données partagées en même temps, assurant ainsi l’exactitude.

La norme C ++ actuelle ne comporte pas d’outils de simultanéité.

Bien que vous ayez préféré préférer les livres aux didacticiels en ligne, la colonne Effective Concurrency de Herb Sutter est sans aucun doute une lecture incontournable.

Il y a aussi le prochain livre d’Anthony Williams intitulé C ++ Concurrency in Action . Anthony Williams est l’auteur de la bibliothèque Boost.Thread .

Une autre bibliothèque de threads digne d’intérêt est TBB d’Intel .

Les serrures et les mutex ne font pas partie de la norme C ++ actuelle, car ils traitent de la simultanéité qui ne fait pas partie de la norme. Ils sont inclus dans plusieurs bibliothèques et différents systèmes d’exploitation ont différents moyens de les gérer (threads POSIX ou Windows). Si vous prenez un livre sur la programmation simultanée en C ++, vous trouverez probablement ce que vous recherchez. Vous pouvez trouver des implémentations pour eux dans les bibliothèques boost et ACE.

Les threads font partie de la norme C ++ 0x. Je ne connais pas encore de livres sur ce sujet, mais Wikipedia a un texte de présentation sur les nouvelles fonctionnalités de filetage .

C ++ n’est pas conscient des threads pour le moment, donc les threads mutexes, etc., ne font pas partie du langage.
Normalement, vous devez utiliser des bibliothèques spécifiques au système pour les threads et les mutex, comme la bibliothèque pthread sous Linux.
Peut-être que les bibliothèques de type pthread sont trop de type c, mais il existe des bibliothèques C ++ qui les encapsulent de la même manière que C ++, comme les ptypes ou boost.

Ce sont des constructions de base utilisées pour assurer l’exactitude des programmes parallèles. Ils sont inclus Boost et le nouveau standard C ++.

Je peux recommander ce livre, même s’il ne se concentre pas sur le C ++: http://www.amazon.com/Art-Multiprocessor-Programming-Maurice-Herlihy/dp/0123705916 .

Les verrous et mutex (think: exclusion mutuelle) permettent aux threads coopérants de synchroniser l’access aux ressources partagées. Pour un bref aperçu du concept, lisez l’article de Wikipedia sur l’exclusion mutuelle .

Ces concepts ne font pas partie du langage C ++. Le livre pthreads O’Reilly serait une bonne référence pour vous, si vous êtes sur une plate-forme POSIX. Pour Windows, vous pouvez utiliser la programmation système Windows d’Addison-Wesley.