Sobes.tech
Junior — Middle

Parlez de votre expérience dans l'utilisation de canaux pour organiser l'interaction entre les composants ou les threads.

sobes.tech IA

Réponse de l'IA

En Go, les canaux sont utilisés pour organiser un échange sécurisé de données entre goroutines, ce qui facilite la synchronisation et la communication.

Exemple d'utilisation d'un canal pour transmettre des données entre deux goroutines:

package main

import (
    "fmt"
    "time"
)

func worker(ch chan string) {
    msg := <-ch // réception du message du canal
    fmt.Println("Message reçu:", msg)
}

func main() {
    ch := make(chan string)
    go worker(ch)
    ch <- "Bonjour du main!" // envoi du message au canal
    time.Sleep(time.Second) // attendre la fin de la goroutine
}

Les canaux aident à éviter les conditions de course et rendent le code plus lisible et maintenable lors de la gestion de la concurrence.