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
SIEM & PME : Comment construire la boîte noire de votre SI ?
Passez à la cybersécurité proactive, transformez la collecte et l’analyse des logs en un bouclier dynamique contre les cybermenaces. Découvrez comment mettre en place une approche SIEM modulaire, évolutive et accessible, pour anticiper, détecter et réagir efficacement aux attaques.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Cybercriminalité bancaire : l’IA industrialise les attaques en 2026
- Shadow AI en France : les RSSI alertent, mais la gouvernance des agents IA reste à la traîne
- Attaques edge : les fournisseurs, nouvelle cible prioritaire des cybercriminels
- Analyse Patch Tuesday Août 2026
Articles les + lus
Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
À la une de la chaîne Tech
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
