Opérations non bloquantes sur canaux
Contexte
Section intitulée « Contexte »Un select avec une clause default permet des envois et réceptions non bloquants. Si aucune opération sur canal n’est prête, la clause default s’exécute immédiatement.
Essayer de recevoir d’un canal sans bloquer.
Code exemple
Section intitulée « Code exemple »package main
import "fmt"
func main() { ch := make(chan string)
select { case msg := <-ch: fmt.Println("reçu", msg) default: fmt.Println("aucun message reçu") }
// Envoi non bloquant select { case ch <- "bonjour": fmt.Println("envoyé") default: fmt.Println("l'envoi bloquerait") }}aucun message reçul'envoi bloquerait