Sobes.tech
Junior — Middle

Expliquez le concept de concurrence dans le langage de programmation Go et son rôle dans le développement d'applications parallèles

sobes.tech IA

Réponse de l'IA

En Go, la concurrence (concurrence) est la capacité d’un programme à exécuter plusieurs tâches simultanément, en utilisant efficacement les ressources du processeur. Dans le langage Go, cela est réalisé grâce aux goroutines, qui sont des threads légers démarrés avec le mot-clé go.

La concurrence permet d’écrire des applications parallèles, où différentes parties du code s’exécutent en même temps, ce qui augmente la performance et la réactivité des programmes.

Pour synchroniser et échanger des données entre les goroutines, on utilise des canaux, qui assurent une communication sécurisée sans blocages explicites.

Exemple:

package main
import (
    "fmt"
    "time"
)

func worker(id int) {
    fmt.Printf("Travailleur %d démarrant\n", id)
    time.Sleep(time.Second)
    fmt.Printf("Travailleur %d terminé\n", id)
}

func main() {
    for i := 1; i <= 3; i++ {
        go worker(i) // démarrer la goroutine
    }
    time.Sleep(2 * time.Second) // attendre la fin des goroutines
}

Dans cet exemple, trois goroutines s’exécutent simultanément, illustrant la concurrence en Go.