Ecrire des applications multithread robustes est un vrai défi. Ecrire du code C++ portable l'est aussi. A cela, la librairie Boost propose une bonne solution.
C++ est un langage plein de paradoxes. Dans le monde des langages impératifs, il est certainement le plus puissant, qui produit le code le plus performant tout en étant le plus expressif. Il supporte tous les paradigmes. Pourtant les spécifications de C++ ne le dotent pas de riches bibliothèques, hormis la STL bien sûr, ce qui oblige le développeur à être trop concerné par les particularités des plates-formes. Et du coup C++ fait parfois pâle figure devant Java ou C# alors qu'il leur est, de l'avis de votre serviteur, bien supérieur. Les spécifications C++ à venir devraient pallier cette carence. En attendant, le projet Boost que nous vous avons présenté dans Programmez! 93 propose une quantité impressionnante de librairies futées. Nous nous intéressons aujourd'hui à la librairie Boost.Thread, très efficace en ce qui concerne l'écriture de code multithread robuste, sans DeadLock et autre Race Condition, et surtout portable. Boost.Thread gomme les énormes disparités entre les plates-formes. Java n'a plus qu'à bien se tenir :) Le lecteur trouvera nos six programmes d'exemples sur le Cd-Rom accompagnant le magazine ou sur notre site. Sous Windows le code a été écrit et compilé avec Visual Studio 2005. Sous Linux l'ensemble du code a été compilé avec SCons (voir dans ce même magazine) et gcc 4.1.1.