Aller au contenu

050.000 Concurrence, goroutines et synchronisation#

Goroutines et concurrence#

  • Introduction à la concurrence et aux goroutines
  • Création et utilisation des goroutines
  • Gestion des goroutines avec sync.WaitGroup
  • Parallélisme vs Concurrence
  • Comparaison des goroutines avec les threads
  • Techniques de programmation concurrente en Go

Canaux et communication entre goroutines#

  • Introduction aux canaux (channels)
  • Création et utilisation des canaux
  • Types de canaux: non-buffered, buffered, unidirectionnels et bidirectionnels
  • Communication entre goroutines via les canaux
  • Canaux unidirectionnels et bidirectionnels
  • Gestion des canaux avec close et range

Patterns de concurrence et select#

  • Introduction au select
  • Introduction au pattern "fan-in/fan-out"
  • Utilisation de select pour gérer plusieurs canaux
  • Timeouts et tickers avec select
  • Implémentation de patterns de concurrence avancés
  • Bonnes pratiques pour la programmation concurrente en Go

Travaux pratiques#

Calculer des factoriels en parallèle#

  • Implémentation séquentielle du calcul de factoriels
  • Conversion de l'implémentation en version concurrente avec goroutines et canaux
  • Analyse des performances et optimisation

Développer un système de files d'attente (queue) pour traiter des tâches en parallèle#

  • Conception d'un système de files d'attente
  • Implémentation du système de files d'attente avec goroutines et canaux
  • Gestion des erreurs et synchronisation
  • Optimisation et bonnes pratiques pour le traitement en parallèle

FIN.