C++20 : évolutions sur le parallélisme

Spécialité(s)


Résumé

La programmation parallèle est une nécessité pour tirer pleinement profit des performances de nos CPU modernes. Depuis C++11, la librairie s’enrichit d'outils pour nous permettre de mieux mettre en œuvre nos programmes.


C++11 a intégré dans la librairie standard de quoi mettre en œuvre la programmation parallèle en nous apportant de quoi manipuler les threads et les objets de synchronisation que sont les mutex et les variables conditions, l'introduction des promesses et des atomics.

C++14 et 17 n'ont apporté des choses qu'à la marge, C++20 lui arrive avec sont lot de nouveautés que nous allons détailler. Comme toujours, je n'aborde pas la totalité des choses, mais seulement celles qui me paraissent les plus intéressantes.

1. Les threads joignables

La classe thread actuelle a le défaut qu'il ne faut pas détruire la variable tant que le thread est en cours d’exécution, sous peine de subir une terminaison brutale du programme via terminate(), l'oubli de join() est donc fatale, sauf à avoir fait un detach() des threads concernés.

La nouvelle classe jthread est très similaire au thread, mais apporte des fonctionnalités supplémentaires.

La première est un join()...

Cet article est réservé aux abonnés. Il vous reste 97% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous