
Cours de multithreading avancé en Go
Le modèle de concurrence de Go est puissant, mais seulement si vous le comprenez vraiment. Ce cours vous plonge au cœur des goroutines, des canaux, des mutex et des patrons de niveau production pour vous permettre d'écrire du code concurrent Go qui est rapide, sécurisé et facile à maintenir. Arrêtez de deviner et commencez à bâtir des systèmes qui évoluent.
Ce que vous allez apprendre:
Maîtrisez les goroutines, les canaux et l'ordonnanceur Go pour écrire des programmes concurrents sécuritaires.
Mettre en œuvre des regroupements de travailleurs, des pipelines et des patrons de diffusion pour le traitement de données à haut débit.
Appliquez le verrouillage par mutex, les opérations atomiques et les primitives de synchronisation pour protéger l'état partagé.
Utilisez le paquetage context pour gérer l'annulation, les échéances et les valeurs liées à la portée d'une requête.
Détectez et corrigez les interblocages, les fuites de goroutines et les situations de compétition à l'aide des outils intégrés de Go.
Ajustez GOMAXPROCS, évaluez le code concurrent à l'aide de repères et réduisez la contention de verrouillage dans les charges de travail de production.
Comment vous étudiez de façon pratique Cours de multithreading avancé en Go
Comment vous pratiquez Cours de multithreading avancé en Go
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.
Contenu du cours
8 Chapitres • 39 LeçonsDurée entre 4 et 360 heures (vous décidez)
Chapitre 1MasquerCacher les détailsVoir les détailsFondements de la concurrence en Go
Fondements de la concurrence en Go
Leçon 1 • Synchronisation des goroutines avec WaitGroups
Utilisez sync.WaitGroup pour coordonner la fin des goroutines sans attente active. Fournit le premier outil de synchronisation pratique avant l'introduction des canaux.
Leçon 2 • Compréhension des situations de compétition
Identifiez les situations de compétition à l'aide d'exemples et de l'outil de détection de situations de compétition de Go.
Leçon 3 • Fonctionnement interne du runtime et de l'ordonnanceur de Go
Examinez le modèle de fils d'exécution M:N et l'algorithme de vol de travail de l'ordonnanceur de Go. Établit les bases du runtime dont dépend chaque modèle de concurrence ultérieur.
Leçon 4 • Lancement et gestion des goroutines
Créez, surveillez et terminez des goroutines à l'aide du mot-clé go et de modèles de cycle de vie. Permet directement l'exécution sécurisée de tâches concurrentes couverte tout au long du cours.
Chapitre 2MasquerCacher les détailsVoir les détailsCanaux : communication entre goroutines
Canaux : communication entre goroutines
Leçon 1 • Parcours de canaux et signaux de fin
Itérez sur la sortie d'un canal avec range et signalez la fin via des canaux done. Établit des modèles d'arrêt propres réutilisés dans les chapitres sur les pipelines et les pools de travailleurs.
Leçon 2 • Types de canaux directionnels
Restreignez la direction d'un canal à l'aide d'annotations de type envoi seulement et réception seulement pour imposer des contrats d'API. Améliore la sécurité du code et documente l'intention dans les API concurrentes.
Leçon 3 • Instruction Select et multiplexage
Utilisez select pour attendre plusieurs opérations sur des canaux simultanément et implémenter des délais d'attente. Déverrouille les modèles de fusion et les flux de contrôle concurrents réactifs.
Leçon 4 • Canaux tamponnés et non tamponnés
Comparez les canaux non tamponnés synchrones avec les canaux tamponnés asynchrones et leur sémantique de capacité. Permet des décisions correctes de dimensionnement des canaux dans les conceptions de pipelines ultérieures.
Leçon 5 • Notions fondamentales sur les canaux
Déclarez, initialisez, envoyez vers et recevez depuis des canaux à l'aide de la syntaxe Go. Ancre les étudiants dans la mécanique des canaux avant d'explorer des modèles d'utilisation avancés.
Chapitre 3MasquerCacher les détailsVoir les détailsMutex et synchronisation mémoire
Mutex et synchronisation mémoire
Leçon 1 • Essentiels du modèle mémoire de Go
Interprétez les garanties formelles du modèle mémoire de Go pour les opérations de synchronisation. Prévient les bogues subtils causés par le réordonnancement du compilateur et du CPU dans le code concurrent.
Leçon 2 • sync.Once et initialisation paresseuse
Garantissez l'exécution unique d'un code d'initialisation à travers des goroutines concurrentes avec sync.Once. Résout en toute sécurité le problème d'initialisation singleton dans les programmes concurrents.
Leçon 3 • sync.Mutex et sync.RWMutex
Verrouillez et déverrouillez des ressources partagées avec Mutex et optimisez les charges de travail à prédominance de lectures avec RWMutex. Fournit l'outil fondamental de protection de l'état partagé pour le chapitre.
Leçon 4 • Opérations atomiques avec sync/atomic
Effectuez des lectures et écritures sans verrou sur des types primitifs à l'aide du paquetage sync/atomic. Permet des compteurs et indicateurs haute performance sans la surcharge d'un mutex.
Leçon 5 • sync.Map pour les dictionnaires concurrents
Utilisez sync.Map pour un accès clé-valeur concurrent sans verrouillage externe dans des charges de travail spécifiques. Compare avec les dictionnaires protégés par mutex pour guider la sélection correcte de la structure de données.
Chapitre 4MasquerCacher les détailsVoir les détailsPaquetage Context pour l'annulation et les délais
Paquetage Context pour l'annulation et les délais
Leçon 1 • Annulation avec WithCancel
Propaguez les signaux d'annulation à travers les arbres de goroutines à l'aide de WithCancel et CancelFunc. Permet un arrêt propre des goroutines déclenché par les décisions du parent.
Leçon 2 • Contexte dans les gestionnaires HTTP et gRPC
Appliquez l'annulation et les délais de contexte à l'intérieur des gestionnaires de serveur HTTP et gRPC. Démontre des modèles d'intégration concrets qui renforcent tous les concepts de contexte précédents.
Leçon 3 • Délais et temporisations
Limitez la durée des opérations avec WithDeadline et WithTimeout pour éviter un blocage indéfini. Directement applicable aux appels réseau, aux requêtes de bases de données et aux gestionnaires RPC.
Leçon 4 • Stockage et récupération de valeurs dans le contexte
Attachez des valeurs propres à une requête au contexte à l'aide de WithValue et récupérez-les en toute sécurité. Couvre le typage correct des clés pour éviter les collisions dans les grandes bases de code.
Leçon 5 • Notions fondamentales sur le contexte
Comprenez l'interface Context et le rôle des arbres de contexte dans les programmes Go. Établit le modèle conceptuel avant d'appliquer les fonctionnalités d'annulation et de délai.
Chapitre 5MasquerCacher les détailsVoir les détailsModèles de concurrence : pipelines et distribution (fan-out)
Modèles de concurrence : pipelines et distribution (fan-out)
Leçon 1 • Collecte (Fan-In) : fusion des résultats
Fusionnez plusieurs canaux de sortie en un seul à l'aide de goroutines et de select pour l'agrégation des résultats. Complète le modèle de distribution/collecte pour la collecte de charges de travail parallèles.
Leçon 2 • Distribution (Fan-Out) : répartition du travail
Distribuez un seul canal d'entrée entre plusieurs goroutines de travail pour paralléliser le traitement. S'appuie sur les fondamentaux du pipeline pour exploiter le matériel multicœur.
Leçon 3 • Limitation du débit dans les pipelines
Appliquez une limitation de débit basée sur le seau à jetons et le tic-tac à l'intérieur des étapes du pipeline pour contrôler le débit. Empêche la surcharge en aval dans les systèmes de traitement de données en production.
Leçon 4 • Modèle du générateur
Produisez des flux de valeurs à partir de goroutines à l'aide de l'idiome du générateur pour l'évaluation paresseuse. Permet un approvisionnement en données économe en mémoire pour les étapes du pipeline.
Leçon 5 • Fondamentaux du modèle de pipeline
Enchaînez les étapes de goroutines avec des canaux pour construire des pipelines de traitement de données linéaires. Introduit le modèle de composition de base que tous les modèles avancés de ce chapitre étendent.
Chapitre 6MasquerCacher les détailsVoir les détailsPools de travailleurs et files d'attente de tâches
Pools de travailleurs et files d'attente de tâches
Leçon 1 • Dimensionnement dynamique du pool
Ajustez le nombre de travailleurs à l'exécution en fonction de la profondeur de la file d'attente et des mesures de charge système. Étend le pool statique pour gérer des charges de travail variables sans sur-provisionnement.
Leçon 2 • Files d'attente de tâches prioritaires
Implémentez une répartition de travaux ordonnée par priorité à l'aide de files d'attente basées sur un tas avec protection par mutex. Permet des niveaux de service différenciés au sein d'un seul pool de travailleurs.
Leçon 3 • Gestion des erreurs dans les pools de travailleurs
Collectez, agrégez et remontez les erreurs provenant de travailleurs concurrents sans perdre de résultats. Assure la fiabilité et l'observabilité du pool requises dans les environnements de production.
Leçon 4 • Files d'attente de tâches persistantes et durables
Connectez les pools de travailleurs à des courtiers de messages externes pour une livraison de travaux durable avec garantie « au moins une fois ». Fait le pont entre la concurrence en mémoire et les architectures de traitement de tâches distribuées.
Leçon 5 • Architecture du pool de travailleurs
Concevez un pool de goroutines de taille fixe qui traite les travaux à partir d'un canal partagé. Établit le modèle de concurrence canonique à ressources limitées utilisé dans les services de production.
Chapitre 7MasquerCacher les détailsVoir les détailsDétection et correction des bogues de concurrence
Détection et correction des bogues de concurrence
Leçon 1 • Détection et prévention des interblocages
Reconnaissez les modèles d'interblocage par l'analyse de l'ordre de verrouillage et le détecteur d'interblocage intégré de Go. Fournit des stratégies de prévention applicables à toute utilisation de mutex et de canaux.
Leçon 2 • Vivacité et famine
Distinguez la vivacité de l'interblocage et identifiez la famine dans l'ordonnancement des goroutines. Équipe les étudiants pour résoudre les problèmes subtils de progression invisibles pour le détecteur de courses.
Leçon 3 • Détection des fuites de goroutines
Trouvez et éliminez les goroutines qui ne se terminent jamais à l'aide de métriques d'exécution et de goleak. Empêche l'épuisement de la mémoire et du CPU dans les services à longue durée de vie.
Leçon 4 • Utilisation avancée du détecteur de courses
Intégrez le détecteur de courses dans les pipelines CI et interprétez des rapports de courses complexes. Passe de la détection de base à l'élimination systématique des courses dans les grandes bases de code.
Leçon 5 • Profilage de programmes concurrents
Utilisez les profils pprof de goroutine, mutex et blocage pour localiser les goulots d'étranglement de concurrence. Relie les compétences de débogage à l'optimisation du rendement couverte dans le prochain chapitre.
Chapitre 8MasquerCacher les détailsVoir les détailsRéglage du rendement et modèles avancés
Réglage du rendement et modèles avancés
Leçon 1 • Structures de données sans verrou
Construisez des piles et des files d'attente sans verrou à l'aide de primitives atomiques comparer-et-échanger. Fournit des alternatives à haut débit aux structures protégées par mutex pour des charges de travail spécifiques.
Leçon 2 • GOMAXPROCS et réglage de l'ordonnanceur
Réglez GOMAXPROCS et les nombres de goroutines pour correspondre à la topologie matérielle et au type de charge de travail. Traduit les connaissances sur l'ordonnanceur du chapitre 1 en gains de rendement mesurables.
Leçon 3 • Analyse comparative de code concurrent
Écrivez des benchmarks concurrents fiables à l'aide de testing.B et évitez les pièges de mesure courants. Assure que les affirmations de rendement sont reproductibles et statistiquement significatives.
Leçon 4 • Réduction de la contention sur les verrous
Appliquez le partitionnement, la mise en cache locale et le verrouillage fin pour minimiser la contention sur les mutex. Améliore directement le débit dans les services à haute concurrence mesuré lors du profilage précédent.
Leçon 5 • sync.Pool pour la réutilisation d'objets
Réduisez la pression sur le GC en mettant en commun les allocations de courte durée avec sync.Pool dans les chemins chauds. Démontre des améliorations mesurables de la latence dans le code concurrent à forte allocation.
Votre certificat valide de réussite
Ce cours est pour vous :
Ingénieurs et ingénieures backend : prêts à passer du Go séquentiel à la concurrence de niveau production.
Ingénieurs et ingénieures de plateforme : qui construisent une infrastructure interne exigeant un traitement fiable et à haut débit.
Architectes logiciels : qui évaluent les patrons de concurrence de Go pour les décisions de conception de systèmes distribués.
Diplômés en informatique : jeter un pont entre la théorie académique de la concurrence et la mise en œuvre concrète en Go.
Développeurs et développeuses qui passent de Python ou Java : qui remplacent les modèles mentaux basés sur les fils d'exécution par les idiomes de Go.
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...

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.

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 !

La plateforme est rapide, simple à utiliser. La diversité du contenu et les vidéos complémentaires aident beaucoup dans l'apprentissage.

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




















