Formation C#, programmation multithread
- Programme
- Participants / Prérequis
- Intra / sur-mesure
-
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.
Introduction
- Plusieurs threads : pourquoi ? Les objectifs.
- Deux modèles de multithreading : concurrent/parallèle.
- Difficultés et défis de la programmation multithread.
Les outils de base du framework
- Qu'est-ce qu'un thread ? Composants d'un 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
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.
- Les sections critiques de Windows et la classe Monitor du framework.
- Le danger d'étreinte fatale et sa détection.
- Les variables conditionnelles et la classe Monitor.
- La classe ReadWriteLock. La classe Interlocked.
Travaux pratiques
Synchronisation de deux threads, producteur et consommateur de données. Utilisation des classes.
Le pool de threads
- La ThreadPool et ses deux catégories de threads.
- Le paramétrage du nombre de threads.
- Utilisation explicite et implicite de threads de travail.
Travaux pratiques
Usage explicite de threads du pool.
L'utilisation d'exécutions asynchrones
- La mécanique Windows sous-jacente.
- Le Design Pattern Begin/End et les classes Stream ou autres concernées.
- L'asynchrone dans les ASP.NET.
- Le Design Pattern Async du framework pour les sockets.
Travaux pratiques
Ecriture d'un programme utilisant des appels asynchrones.
L'instrumentation et le profilage du code
- 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.
- L'utilisation d'outils de diagnostic pour juger de la pertinence de l'utilisation de threads.
Travaux pratiques
Mise en évidence de l'impact de certains choix de design d'application.
» Participants
» Prérequis
| Olivier D. 26/09/2017 |
4 / 5
|
Les avis client sont issus des feuilles d’évaluation de fin de formation. La note est calculée à partir de l’ensemble des avis datant de moins de 12 mois.









