Concurrence en C++ : Multithreading, asynchronisme et parallélisme
300 pages
French
PDF
4.5

Concurrence en C++ : Multithreading, asynchronisme et parallélisme

Concurrence en C++ : Multithreading, asynchronisme et parallélisme

Auteur :

Année :

Résumé :

Les processeurs modernes possèdent plusieurs cœurs, et pour exploiter toute leur puissance, il est nécessaire de savoir écrire du code concurrent. Le livre « Concurrence en C++ » est un guide exhaustif qui vous aidera à maîtriser tous les aspects de la programmation parallèle en langage C++ : des threads de base aux motifs de synchronisation complexes.



Le livre commence par les bases : vous apprendrez à créer et gérer des threads avec la bibliothèque standard (std::thread), à protéger les données partagées avec des mutex (std::mutex) et à éviter les interblocages. Une attention particulière est accordée aux outils modernes de C++11/14/17/20, tels que std::async, std::future, std::promise et std::packaged_task, qui permettent d'écrire du code asynchrone sans gestion manuelle des threads.



Vous découvrirez également le modèle mémoire C++ (memory model), les opérations atomiques (std::atomic) et les barrières mémoire — ces sujets sont essentiels pour créer des algorithmes concurrents corrects et efficaces. Un chapitre entier est consacré aux motifs de conception pour applications multithreads : thread pool, producteur-consommateur, verrou lecteurs-rédacteurs et autres.



La partie pratique du livre comprend l'analyse d'exemples réels : traitement parallèle de données, files d'attente concurrentes, structures de données sans verrou (lock-free) et optimisation des performances. Vous apprendrez à identifier et corriger les erreurs typiques : courses de données (data races), deadlocks, faux partage (false sharing) et problèmes de cache.



À qui s'adresse ce livre :

  • Développeurs C++ souhaitant écrire des applications multithreads rapides
  • Programmeurs passant de projets monothreads à des projets concurrents
  • Spécialistes se préparant à des entretiens où le multithreading est abordé
  • Tous ceux qui veulent comprendre comment fonctionne le parallélisme au niveau système


Ce que vous apprendrez :

  • Comment créer et synchroniser des threads en C++
  • Comment utiliser std::async, std::future et std::promise pour des tâches asynchrones
  • Comment fonctionnent le modèle mémoire C++ et les opérations atomiques
  • Comment concevoir des classes et conteneurs thread-safe
  • Comment éviter les deadlocks, les courses de données et autres problèmes
  • Comment profiler et optimiser du code concurrent
  • Comment appliquer des algorithmes lock-free et wait-free


Le livre contient de nombreux exemples de code que vous pouvez immédiatement appliquer dans vos projets. Tous les exemples sont testés sous GCC, Clang et MSVC. Après lecture, vous serez capable d'écrire en toute confiance des programmes concurrents qui utilisent efficacement les processeurs multicœurs et fonctionnent sans erreurs.



Ce n'est pas une théorie aride, mais un guide pratique basé sur des années d'expérience de l'auteur. Vous obtiendrez une compréhension approfondie du fonctionnement de la concurrence en C++ et apprendrez à appliquer ces connaissances dans la pratique.

Recommendations