Quelle est la différence entre concurrence et parallélisme?
sobes.tech IA
Réponse de l'IA
La concurrence est la capacité d’un système à gérer plusieurs tâches qui peuvent être exécutées partiellement en même temps, en passant de l’une à l’autre. La parallélisation est l’exécution simultanée de plusieurs tâches sur différents cœurs du processeur.
En termes simples, la concurrence concerne l’organisation du travail pour que plusieurs tâches puissent progresser, tandis que la parallélisation concerne l’exécution simultanée de ces tâches.
En Go, la concurrence est atteinte grâce aux goroutines et aux canaux, et la parallélisation se produit lorsque ces goroutines sont réellement exécutées en même temps sur différents cœurs.
Exemple de concurrence en Go:
package main
import (
"fmt"
"time"
)
func task(name string) {
for i := 0; i < 3; i++ {
fmt.Println(name, "étape", i)
time.Sleep(100 * time.Millisecond)
}
}
func main() {
go task("A")
go task("B")
time.Sleep(500 * time.Millisecond)
}
Ici, les tâches "A" et "B" s’exécutent de manière concurrente, en alternant, et si elles sont lancées sur un processeur multi-cœurs, elles peuvent s’exécuter en parallèle.