Introduction
Vous avez peut-être entendu dire que Go est incroyable pour son accès simultané. C’est peut-être la fonctionnalité la plus importante qui a rendu Go très populaire et le choix d’écrire d’autres logiciels tels que Docker, Kubernetes et Terraform.
Avant de commencer à vous familiariser avec le fonctionnement de la simultanéité dans Go, vous devrez oublier ce que vous connaissez déjà dans d’autres langages de programmation. L’approche de Go est différente.
À ce stade, vous disposez déjà des connaissances nécessaires pour couvrir des sujets plus avancés tels que l’accès simultané. Néanmoins, nous allons commencer par voir dans quel cas la simultanéité est nécessaire. Nous introduirons des sujets différents petit à petit.
Nous vous recommandons de mettre en pratique tous les exemples de code et de ne pas aller plus loin avant d’avoir bien compris les concepts. Comme vous l’avez fait dans les modules précédents, la pratique est ce qui vous aidera à mieux comprendre les concepts.
Commençons à explorer ce que vous allez apprendre dans ce module.
Objectifs d’apprentissage
Dans ce module, vous allez découvrir :
- Le fonctionnement de la simultanéité dans Go.
- La différence entre simultanéité et parallélisme.
- Le fonctionnement de la communication dans un programme simultané à l’aide de canaux.
- Comment écrire un programme qui s’exécute plus rapidement en implémentant l’accès simultané.
- Comment écrire des programmes dynamiques qui peuvent utiliser des mémoires tampons pour tirer parti de l’accès simultané lorsque vous souhaitez lancer un nombre limité d’appels simultanés.
Prérequis
- Un environnement Go prêt pour la création d’applications. Idéalement, vous devez avoir installé et configuré Go localement, et de disposer de Visual Studio Code installé avec l’extension Go.
- Possibilité de créer et de modifier des fichiers
.go
. - Capacité à exécuter des applications Go en utilisant l’invite du terminal.
- Connaissance des types de données de base comme
string
,int
etboolean
. - Connaissance de l’écriture de flux de contrôle de données de base, comme les instructions
if
etfor
. - Connaissance de l’écriture des fonctions.
- Connaissance de l’utilisation des bibliothèques comme
net/http
.