Votre partenaire formation

C# – programmation multithread

Réf: PMU

Durée: 3 jours

 

Objectifs de la formation

Cette formation vous montrera les avantages du traitement multithread ainsi que la manière de le mettre en œuvre de manière efficace en C#. Vous verrez comment gérer le partage de la mémoire, les problèmes de synchronisation, les pools de threads, ainsi que les meilleures pratiques de développement.

Contenu de cette formation C# :
• Introduction
• Les outils de base du framework
• Les classes de synchronisation du framework
• Le pool de threads
• Les entrées/sorties asynchrones
• Les onze plaies des programmes multithreads concurrents
• Le parallélisme
• Conception et architecture des programmes

Formation traitement multithread, Formation .net, Formation C sharp, Formation conception, Formation architecture logicielle, Formation parallelisme

 

Programme de Formation

Introduction

– Plusieurs threads : pourquoi ?

– Objectifs du multithreading.

– Les deux modèles du multithreading : concurrent ou parallèle.

– Difficultés et défis de la programmation multithread : lors de la conception, lors de la mise au point.

 

Les outils de base du framework

– Qu »est-ce qu »un thread ? Bref aperçu historique.

– Composants d »un thread.

– Affinité de thread.

– Le partage de la mémoire par les threads.

– La classe Thread du framework (version 2 et sup).

– Le besoin de synchronisation et l »instruction lock.

Travaux pratiques \t
Création de thread. Synchronisation. Influence du nombre de processeurs.

 

 

Les classes de synchronisation du framework

– Les objets de synchronisation historiques de Windows : Event, Mutex, Semaphore.

– Les classes équivalentes du framework.

– Etude de la sémantique de synchronisation de ces classes.

– Les sections critiques de Windows et la classe Monitor du framework.

– Le danger d »étreinte fatale et sa détection.

– Les variables conditionnelles (condvar) et la classe Monitor.

– La classe ReadWriteLock

– La classe Interlocked.

Travaux pratiques \t
Synchronisation de deux threads, producteur et consommateur de données. Utilisation des classes dans plusieurs programmes multithreads.

 

 

Le pool de threads

– La classe ThreadPool et ses deux catégories de threads.

– Le paramétrage du nombre de threads.

– Utilisation explicite de threads de travail : la fonction QueueUserWorkItem, RegisterWaitForSingleObject.

– Utilisation implicite de threads de travail : appel asynchrone de délégation, les quatre classes Timer…

Travaux pratiques \t
Appel asynchrone de délégation et usage explicite de threads du pool.

 

 

Les entrées/sorties asynchrones

– La mécanique Windows sous-jacente aux threads d »E/S asynchrone.

– Le design pattern Begin/End et les classes Stream ou autres concernées.

– Le design pattern *Async du framework 3.x pour les sockets.

Travaux pratiques \t
Ecriture d »un programme faisant des E/S asynchrones.

 

Les onze plaies des programmes multithreads concurrents

– La compétition pour les données, l »oubli de synchronisation et sa granularité.

– Les lectures/écritures mémoire cassées, le réordonnancement des instructions.

– La réentrance fortuite, l »étreinte fatale.

– L »engorgement du verrou, la panique après le verrou.

– La danse à deux temps, l »inversion de priorités.

Travaux pratiques \t
Mise en évidence de certaines plaies.

 

Le parallélisme

– Un nouveau paradigme pour les programmes multithreads.

– Les principes du parallélisme.

– La librairie de Microsoft, supplément au framework.

– Les classes essentielles et leur utilisation.

Travaux pratiques \t
Mise en œuvre du parallélisme dans un programme séquentiel.

 

Conception et architecture des programmes

– Penser/concevoir multithread.

– Penser/concevoir parallèle.

– Threads et interface graphique : la classe BackgroundWorker.

– Threads et interface graphique : anticiper les commandes de l »utilisateur.

– Récapitulatif.

 

 

Profil Stagiaires & Pré-requis

Développeurs, ingénieurs, architectes, chefs de projet. Bonnes connaissances en programmation C#.

Prix:
Paris,Lyon,Aix,Nantes,Rennes,Toulouse,Bordeaux,Bruxelles,Strasbourg,Lille,Geneve,Sophia-antipolis,Luxembourg :   2210 € HT

Dates de Formations

Nous Consulter