Choisissez votre langue
Cours avancé de programmation concurrente et réactive
Plus de 2 millions d'apprenants dans le monde

Cours avancé de programmation concurrente et réactive

Maîtrisez l'ensemble du spectre de la programmation concurrente et réactive — de la visibilité mémoire et des structures de données sans verrouillage aux opérateurs réactifs et au renforcement en production. Ce cours avancé dote les ingénieurs et ingénieures expérimentés des modèles mentaux, des patrons et des outils nécessaires pour construire des systèmes à haut débit et tolérants aux pannes qui performent sous une charge réelle.

Dedika pour entreprises

Ce que vous allez apprendre:

  • Appliquez des primitives de synchronisation et des stratégies de verrouillage pour éliminer les risques critiques de concurrence.

  • Concevez et sélectionnez des structures de données concurrentes avec et sans verrouillage pour les charges de travail à haut débit.

  • Configurez des pools de fils d'exécution et des pipelines asynchrones à l'aide de cadriciels d'exécution, de futurs et de patrons fork-join.

  • Créez des flux réactifs avec des opérateurs de transformation, de filtrage et de reprise après erreur pour des flux de données résilients.

  • Contrôlez le threading à travers les pipelines réactifs à l'aide des planificateurs et des opérateurs subscribeOn et observeOn.

  • Implémentez des disjoncteurs, des cloisons étanches et des limiteurs de débit pour renforcer les systèmes réactifs en production.

Comment vous étudiez de façon pratique Cours avancé de programmation concurrente et réactive

Comment vous pratiquez Cours avancé de programmation concurrente et réactive

Pour vous, entreprise, qui souhaitez former votre équipe

Avec Dedika pour entreprises, le cours inclut des exercices et des exemples adaptés à votre propre entreprise et à ses besoins spécifiques.

Cliquez ici

Contenu du cours

8 Chapitres • 40 LeçonsDurée entre 4 et 360 heures (vous décidez)

Chapitre 1Voir les détails

Fondamentaux de la concurrence et modèles mentaux

  • Leçon 1 • Situations de compétition et atomicité

    Identifie les situations de compétition par les motifs vérification-puis-action et lecture-modification-écriture. Présente l'atomicité comme l'exigence fondamentale d'exactitude.

  • Leçon 2 • Processus, fils d'exécution et unités d'exécution

    Définit les processus, les fils d'exécution et les fibres légères comme des unités d'exécution distinctes. Établit le vocabulaire utilisé dans tout le cours.

  • Leçon 3 • État partagé et visibilité de la mémoire

    Explique comment les fils d'exécution partagent la mémoire de tas et pourquoi les caches du CPU provoquent des lectures périmées. Relie les problèmes de visibilité à de véritables bogues de corruption de données.

  • Leçon 4 • Critères d'exactitude de la concurrence

    Définit la linéarisabilité, la cohérence séquentielle et la sérialisabilité comme des modèles d'exactitude formels. Établit les bases des décisions de conception avec et sans verrouillage.

  • Leçon 5 • Interblocage, boucle active et famine

    Analyse les trois principaux problèmes de vivacité à l'aide de graphes d'allocation de ressources. Fournit des heuristiques de détection applicables à tout système concurrent.

Chapitre 2Voir les détails

Primitives de synchronisation et stratégies de verrouillage

  • Leçon 1 • Granularité du verrouillage et contention

    Analyse les compromis entre le verrouillage grossier et le verrouillage fin à l'aide de mesures de débit et de latence. Présente le partitionnement de verrouillage comme une technique évolutive de réduction de la contention.

  • Leçon 2 • Verrous en lecture-écriture et variables de condition

    Présente les verrous en lecture partagée/écriture exclusive pour les charges de travail à forte lecture. Associe les variables de condition aux mutex pour la coordination par attente-notification.

  • Leçon 3 • Sémaphores et barrières

    Utilise des sémaphores compteurs pour limiter les pools de ressources et des barrières cycliques pour synchroniser les phases. Associe chaque primitive à son cas d'utilisation canonique.

  • Leçon 4 • Éviter les pièges courants du verrouillage

    Inventorie l'inversion de verrouillage, l'acquisition de verrous imbriqués et les fuites de verrous comme défauts récurrents. Fournit des motifs de refactorisation pour éliminer chaque piège.

  • Leçon 5 • Mutex et verrous intrinsèques

    Couvre la sémantique de verrouillage exclusif et le comportement de verrouillage réentrant. Démontre les motifs corrects d'acquisition et de libération de verrous.

Chapitre 3Voir les détails

Structures de données concurrentes et collections

  • Leçon 1 • Immuabilité comme stratégie de concurrence

    Démontre comment les objets immuables éliminent complètement la synchronisation. Couvre l'immuabilité effective, la copie défensive et les structures de données persistantes.

  • Leçon 2 • Files d'attente et files double

    Couvre les implémentations de files d'attente bloquantes et non bloquantes pour les pipelines producteur-consommateur. Compare le comportement de contre-pression des files d'attente bornées et non bornées.

  • Leçon 3 • Variables atomiques et opérations CAS

    Explique la comparaison-échange comme la primitive matérielle sous-jacente aux algorithmes sans verrouillage. Construit des compteurs, des références et des références estampillées atomiques.

  • Leçon 4 • Enveloppes de collections thread-safe

    Examine les enveloppes synchronisées et leurs pièges d'opérations composées. Motive les collections concurrentes conçues à cet effet plutôt que l'encapsulation naïve.

  • Leçon 5 • Tables de hachage concurrentes et listes à ignorer

    Analyse le verrouillage basé sur les segments et au niveau des nœuds dans les tables de hachage concurrentes. Présente les listes à ignorer comme une structure triée sans verrouillage.

Chapitre 4Voir les détails

Pools de fils d'exécution et cadriciels d'exécution de tâches

  • Leçon 1 • Pipelines asynchrones composables

    Enchaîne des calculs asynchrones dépendants à l'aide de futurs achevables et de rappels de continuation. Gère les erreurs et les replis dans le pipeline.

  • Leçon 2 • Architecture du cadriciel d'exécution

    Présente l'abstraction d'exécuteur qui découple la soumission de tâches de la politique d'exécution. Associe les types d'exécuteurs aux caractéristiques de la charge de travail.

  • Leçon 3 • Futurs, tâches avec retour et promesses

    Soumet des tâches avec retour et récupère les résultats via Future, en gérant l'annulation et le délai d'attente. Présente Promise comme le côté écriture d'un futur.

  • Leçon 4 • Fork-Join et vol de travail

    Implémente le parallélisme diviser-pour-régner à l'aide du cadriciel fork-join. Explique l'ordonnancement par vol de travail et ses avantages en termes de débit.

  • Leçon 5 • Dimensionnement et optimisation des pools de fils d'exécution

    Dérive les formules de taille de pool pour les tâches liées au CPU et aux E/S à l'aide de la loi de Little. Couvre la surveillance de la profondeur de la file d'attente et de l'utilisation des fils d'exécution.

Chapitre 5Voir les détails

Fondamentaux de la programmation réactive

  • Leçon 1 • Contrat observable et observateur

    Définit la séquence observable, le cycle de vie de l'abonnement et les rappels d'observateur. Établit le modèle de flux de données basé sur l'envoi central à la programmation réactive.

  • Leçon 2 • Spécification des flux réactifs

    Couvre les quatre interfaces des flux réactifs : Publisher, Subscriber, Subscription et Processor. Explique la signalisation de la demande comme fondement de la contre-pression.

  • Leçon 3 • Construction d'une bibliothèque réactive minimale

    Implémente un observable jouet, un abonnement et un opérateur map à partir de zéro. Consolide la compréhension du contrat avant d'utiliser des bibliothèques de production.

  • Leçon 4 • Stratégies de contre-pression

    Compare les stratégies d'abandon, de mise en tampon et d'étranglement pour gérer les producteurs plus rapides. Sélectionne la stratégie appropriée en fonction de la tolérance à la perte de données et des objectifs de latence.

  • Leçon 5 • Manifeste réactif et objectifs de conception

    Résume la réactivité, la résilience, l'élasticité et la conception orientée message comme piliers réactifs. Relie chaque pilier à des comportements concrets du système.

Chapitre 6Voir les détails

Opérateurs réactifs et composition de flux

  • Leçon 1 • Opérateurs de combinaison

    Fusionne, compresse et combine plusieurs flux en sorties unifiées. Explique la sémantique de synchronisation qui détermine le moment des émissions combinées.

  • Leçon 2 • Opérateurs de transformation

    Couvre map, flatMap, concatMap et switchMap pour la transformation de valeurs et de flux. Distingue les garanties d'ordre et de concurrence de chaque opérateur.

  • Leçon 3 • Multidiffusion et partage de flux

    Convertit les observables froids en observables chauds à l'aide des opérateurs publish, share et replay. Contrôle le moment de l'abonnement et la taille du tampon de rejeu.

  • Leçon 4 • Opérateurs de gestion des erreurs et de récupération

    Implémente retry, retryWhen, onErrorReturn et onErrorResume pour des pipelines résilients. Distingue les erreurs récupérables des erreurs terminales dans le contexte du flux.

  • Leçon 5 • Opérateurs de filtrage et de fenêtrage

    Applique filter, take, skip, distinct et debounce pour réduire le volume du flux. Présente le fenêtrage basé sur le temps et le nombre pour le traitement par lots.

Chapitre 7Voir les détails

Ordonnanceurs, fils d'exécution et concurrence réactive

  • Leçon 1 • Élimination du code bloquant

    Identifie les appels bloquants qui bloquent les fils d'exécution réactifs et les encapsule dans des wrappers deferred ou fromCallable. Applique les ordonnanceurs d'E/S pour isoler le travail bloquant.

  • Leçon 2 • Opérateurs subscribeOn et observeOn

    Explique comment subscribeOn définit le fil d'exécution d'abonnement et observeOn change le fil d'exécution d'observation. Démontre le placement correct pour le threading en amont et en aval.

  • Leçon 3 • Types d'ordonnanceurs et responsabilités

    Inventorie les ordonnanceurs de calcul, d'E/S, monofil et trampoline selon leur charge de travail prévue. Associe chaque ordonnanceur à l'étape de pipeline correcte.

  • Leçon 4 • Intégration réactive avec les E/S asynchrones

    Fait le pont entre les API asynchrones basées sur les rappels et les futurs vers les flux réactifs. Couvre les pilotes asynchrones TCP, HTTP et de bases de données comme cibles d'intégration.

  • Leçon 5 • Propagation du contexte entre les fils d'exécution

    Propage le contexte de portée de requête tel que les ID de trace et les jetons de sécurité à travers les limites des ordonnanceurs. Empêche la perte de contexte dans les pipelines multifils.

Chapitre 8Voir les détails

Motifs avancés et durcissement pour la production

  • Leçon 1 • Profilage et optimisation du rendement

    Profile la surcharge des opérateurs, les taux d'allocation et la contention des fils d'exécution à l'aide de profileurs asynchrones. Applique la fusion, l'élévation d'opérateur et l'optimisation du pool pour réduire la latence.

  • Leçon 2 • Observabilité et métriques

    Instrumente les pipelines réactifs avec des histogrammes de latence, des taux d'erreur et des métriques de profondeur de file d'attente. Relie les métriques aux seuils d'alerte pour la surveillance de la production.

  • Leçon 3 • Test du code concurrent et réactif

    Utilise des ordonnanceurs à temps virtuel, des abonnés de test et des outils de concurrence déterministes pour écrire des tests fiables. Couvre les tests basés sur les propriétés pour les invariants concurrents.

  • Leçon 4 • Limitation de débit et étranglement

    Applique les algorithmes de seau à jetons et de seau percé pour limiter les taux d'émission. Empêche la surcharge en aval tout en maintenant une latence acceptable.

  • Leçon 5 • Motifs de résilience pour les systèmes réactifs

    Implémente les motifs de disjoncteur, de cloison étanche et de délai d'attente pour contenir la propagation des pannes. Intègre chaque motif dans les chaînes d'opérateurs réactifs.

Certification

Votre certificat valide de réussite

Ce cours est pour vous :

  • Ingénieurs et ingénieures backend : vous avez du mal à éliminer les bogues intermittents dans les services multifilés.

  • Ingénieurs et ingénieures de plateforme : vous construisez des pipelines de données à haut débit qui doivent gérer la contre-pression.

  • Développeurs et développeuses seniors : vous êtes prêts à passer des bases du multifilage à la concurrence de niveau production.

  • Architectes logiciels : vous concevez des systèmes distribués qui nécessitent une communication asynchrone tolérante aux pannes.

  • Développeurs et développeuses Kotlin ou Java : vous adoptez des cadriciels réactifs sans une base théorique solide.

Ce que nos apprenants disent

Vos cours sont parfaits. J'ai acheté le forfait d'un an et j'ai enfin l'opportunité de suivre divers sujets qui m'intéressent sans avoir à changer de plateforme... je vous remercie pour tout ce que vous faites, je vous ai déjà recommandés à d'autres personnes...
Giulio Carlo
Giulio CarloÉtudiant en Marketing Numérique
J'aime la façon dont les leçons vont droit au but et comment je peux changer de chapitres et passer le contenu dont je n'ai pas besoin.
Mariana Ferres
Mariana FerresÉtudiante en Photographie
J'aime le contenu et la façon dont il est présenté ainsi que la transcription des vidéos, ce qui accélère le processus !
Luciana Alvarenga
Luciana AlvarengaÉtudiante en Design d'Ongles
La plateforme est rapide, simple à utiliser. La diversité du contenu et les vidéos complémentaires aident beaucoup dans l'apprentissage.
André Felipe
André FelipeÉtudiant en Ingénierie de Prompt

Formations principales

FAQ

Qui est Dedika?

Le certificat est-il valable au Canada ?

Les cours sont-ils gratuits?

Quelle est la charge de travail des cours?

Comment sont les cours?

Comment fonctionnent les cours?

Quelle est la durée des cours?

Quel est le coût ou le prix des cours?

Qu’est-ce qu’un cours EAD ou en ligne et comment ça fonctionne?

Cours PDF