Une application parallélisée dans les formes est toujours plus performante qu’une application mono-thread. A mesure que nous avançons dans l’ère des processeurs multi-cœurs, l’évolutivité de votre application en fonction du nombre de processeurs devient critique, et la disponibilité des outils appropriés pour cela est essentielle.
Améliorations du traitement parallèle des applications
Dans Visual C++ 2010, le tout nouveau Concurrency Runtime (ConcRT) fournit une bibliothèque C++ qui permet aux développeurs d’exploiter la puissance du multi-cœurs de manière productive. Le ConcRT utilise la terminologie suivante :
â– Algorithmes parallèles (algorithmes génériques qui agissent sur des collections de données)
â– Tâches (un mécanisme servant à encapsuler le travail à accomplir et non la manière dont vous souhaitez le paralléliser)
â– Agents (utilisation du transfert de messages pour un flux de données à granularité fine et une mise en pipeline des tâches gourmandes en ressources informatiques)
Windows 7 dispose d’un nouvel ordonnanceur de threads léger intitulé User-Mode Scheduling (UMS). Celui-ci permet aux applications hautes performances (au lieu du noyau) de planifier, restreindre et contrôler les temps système dus à des appels systèmes bloquants. Vous ne pouvez pas employer UMS directement pour accélérer votre application, mais en prenant en charge ce niveau de flexibilité pour la gestion des threads au niveau mode utilisateur, vous permettez à des bibliothèques de concurrence de niveau supérieur (telles que ConcRT) de fournir un comportement multithread optimisé. ConcRT tire parti d’UMS en définissant une stratégie d’ordonnanceur (Scheduler Policy) avec le membre SchedulerKind défini sur UmsThreadDefault.
Le bloc de code suivant utilise le traitement parallèle des tâches (et les expressions lambda C++) pour le téléchargement asynchrone de plusieurs fichiers à partir du Web :
Concurrency::task_group tasks; // a task_group
// manages the execution of multiple tasks
Concurrency::concurrent_vector
thumbnails; // concurrent_vector is the thread
// safe equivalent of std::vector
Concurrency::concurrent_vector
std::shared_ptr
objWebImages =
make_shared
for( int i = 0;
i < imageUrlList.Image->ResultsCount; ++i )
{
// task_group::run will
// queue a task for execution.
tasks.run( [objWebImages, i, imageUrlList,
&fileList, &thumbnails, this] {
// C++0x lambda expression
// these lengthy operations will now execute
// on a different thread
CString thumbFileName = objWebImages->
DownloadThumbnailImage(
imageUrlList.Image->Results[i]);
CString imageFileName = objWebImages->
DownloadImage(
imageUrlList.Image->Results[i]);
// push_back may be called concurrently from
// different threads at the same time
fileList.push_back(imageFileName);
thumbnails.push_back(CThumbnail::Load(
imageFileName, thumbFileName));
} );
}
tasks.wait(); // first blocking call. this will wait
// for all queued tasks to complete
Globalement, Windows 7 constitue une version pleine d’attraits pour les développeurs. Avec les milliers de nouvelles API Windows proposées aux développeurs natifs, Windows 7 améliore l’utilisation des applications de PC.
Visual Studio 2010 représente l’IDE de prédilection pour exploiter la plate-forme Windows 7. Avec les améliorations apportées à MFC et à ATL, ou encore avec l’ajout de nouveaux concepteurs (designer) et assistants d’IDE, Visual C++ 2010 vous offre la possibilité d’être à l’avant-garde de l’exploitation des fonctionnalités du système d’exploitation.
Téléchargez cette ressource
Guide de Threat Intelligence contextuelle
Ce guide facilitera l’adoption d’une Threat Intelligence - renseignement sur les cybermenaces, cyberintelligence - adaptée au "contexte", il fournit des indicateurs de performance clés (KPI) pour progresser d' une posture défensive vers une approche centrée sur l’anticipation stratégique
Les articles les plus consultés
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Et si les clients n’avaient plus le choix ?
- Afficher les icônes cachées dans la barre de notification
Les plus consultés sur iTPro.fr
- À l’aube de 2026, le SaaS entre dans une nouvelle phase
- Face à l’urgence écologique, l’IT doit faire sa révolution
- IoT et cybersécurité : les bases que chaque décideur doit maîtriser
- AWS re:Invent 2025 : décryptage des grandes innovations qui vont transformer le cloud
Articles les + lus
Les 3 prédictions 2026 pour Java
Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
Face à l’urgence écologique, l’IT doit faire sa révolution
D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
Top 5 TechnoVision 2026 des tendances technologiques à suivre de près !
À la une de la chaîne Tech
- Les 3 prédictions 2026 pour Java
- Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
- Face à l’urgence écologique, l’IT doit faire sa révolution
- D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
- Top 5 TechnoVision 2026 des tendances technologiques à suivre de près !
