> Formations > Technologies numériques > Développement logiciel > .NET > Formation .Net, développement multithreads > Formations > Technologies numériques > Formation .Net, développement multithreads

Formation : .Net, développement multithreads

.Net, développement multithreads




Cette formation aborde la programmation asynchrone avec Task Parallel Library, ainsi que les bonnes pratiques pour leur mise en œuvre efficace en C#. Vous verrez comment gérer le partage de la mémoire, les problèmes de synchronisation, l’asynchronisme avec les tâches et les meilleures pratiques de développement.


INTER
INTRA
SUR MESURE

Cours pratique en présentiel ou à distance
Disponible en anglais, à la demande

Réf. ILQ
  3j - 21h00
Prix : 1910 € H.T.
Pauses-café et
déjeuners offerts




Cette formation aborde la programmation asynchrone avec Task Parallel Library, ainsi que les bonnes pratiques pour leur mise en œuvre efficace en C#. Vous verrez comment gérer le partage de la mémoire, les problèmes de synchronisation, l’asynchronisme avec les tâches et les meilleures pratiques de développement.


Objectifs pédagogiques
À l’issue de la formation, le participant sera en mesure de :
Réaliser la synchronisation de threads en .Net
Appréhender les ressources offertes par la Task Parallel Library et la Task Parallel Library Dataflow
Choisir la collection adaptée à un algorithme multithreads
Associer la programmation évènementielle et le multithreading avec Reactive Extension

Public concerné
Développeurs, architectes, chefs de projet.

Prérequis
Connaissance de .Net ou d'un langage de programmation orienté objet.
Vérifiez que vous avez les prérequis nécessaires pour profiter pleinement de cette formation en faisant  ce test.

Modalités d'évaluation
Le formateur évalue la progression pédagogique du participant tout au long de la formation au moyen de QCM, mises en situation, travaux pratiques…
Le participant complète également un test de positionnement en amont et en aval pour valider les compétences acquises.

Programme de la formation

Les outils de base du multithreading

  • Qu'est-ce qu'un thread ? Notion de thread et processus.
  • Le partage de la mémoire par les threads.
  • ThreadPool pour éviter la création des threads.
  • AppDomain pour isolation de module.
  • Synchronisation multiprocess : les objets de synchronisation Event, Mutex, Semaphore.
  • Synchronisation intraprocess : la classe Monitor du framework et le mot clé lock.
  • Le danger d'étreinte fatale et sa détection.
  • La classe ReaderWriterSlimLock. La classe Interlocked.
Travaux pratiques
Synchronisation de deux threads, producteur et consommateur de données. Utilisation des classes standards.

Bases de la Task Parallel Library

  • Démarrer les tâches et en obtenir leur résultat.
  • Mots clé await et async.
  • Continuations pour gérer la fin normale, sur exception, annulation.
  • Event Asynchronous Pattern versus Task Asynchronous Pattern.
  • Parallel Linq pour exécuter les requêtes Linq en parallèle.
  • Gestion des exceptions, annulations avec Parallel Linq.
  • Parallel.ForEach pour lancer des tâches basées sur les données.
  • Parallel.For pour des calculs d’agrégats.
Travaux pratiques
Calcul d’une somme en parallèle avec différents outils. Démarrage de Tasks et utilisation de await et async.

Plus de détails sur la Task Parallel Library

  • Choix de l’endroit où exécuter une tâche : TaskScheduler.
  • ConfigureAwait pour optimiser la reprise.
  • Rapporter un progrès avec Progress<T>.
  • Annulation de tâche avec CancellationTokenSource.
  • IAsynEnumerable<T> et await foreach de C# 8.
Travaux pratiques
Annulation de tâche et rapport de progrès dans le crawler.

Collections pour la concurrence

  • Collections immutables quand un instantané des données est suffisant.
  • Collections concurrentes pour un partage protégé de données modifiées.
  • Collections pour les problématiques producteurs/consommateurs.
Travaux pratiques
Optimisation et protection du crawler avec des collections concurrentes.

Task Parallel Library Dataflow

  • Task Parallel Library Dataflow pour les exécutions en réseaux parallèles.
  • Les différents blocs de Dataflow, et leur liaison.
  • Liaison conditionnelle des blocs.
  • Dataflow et bufferisation des données.
  • Dataflow et parallélisation des traitements.
  • Liaison dynamique des blocs.
Travaux pratiques
Communiquer entre un serveur web et un backend de manière découplée.

Reactive Extension pour une programmation réactive

  • Reactive Extension pour traiter les événements comme des séquences.
  • Modèle de conception réactif.
  • Observables chauds et froids, abonnement aux données des événements.
  • Écriture à la Linq pour traiter les données.
Travaux pratiques
Fournir une implémentation d’autosuggestion reactive.
Solutions de financement
Plusieurs solutions existent pour financer votre formation et dépendent de votre situation professionnelle.
Découvrez-les sur notre page Comment financer sa formation ou contactez votre conseiller formation.

Horaires
les cours ont lieu de 9h à 12h30 et de 14h à 17h30.
Les participants sont accueillis à partir de 8h45. Les pauses et déjeuners sont offerts.
Pour les stages pratiques de 4 ou 5 jours, quelle que soit la modalité, les sessions se terminent à 16h le dernier jour.

Dates et lieux
Sélectionnez votre lieu ou optez pour la classe à distance puis choisissez votre date.
Classe à distance

Dernières places
Date garantie en présentiel ou à distance
Session garantie