fork download
  1. package main
  2.  
  3. import "fmt"
  4.  
  5. func main() {
  6. canal1 := make(chan string, 1)
  7. canal2 := make(chan string, 1)
  8.  
  9. // Ambos canales están listos con un mensaje
  10. canal1 <- "Mensaje del Canal A"
  11. canal2 <- "Mensaje del Canal B"
  12.  
  13. // EXPRESIÓN COMANDO NO-DETERMINÍSTICA
  14. // El lenguaje no garantiza cuál se ejecutará primero.
  15. select {
  16. case msg1 := <-canal1:
  17. fmt.Println("Ejecutado por decisión aleatoria:", msg1)
  18. case msg2 := <-canal2:
  19. fmt.Println("Ejecutado por decisión aleatoria:", msg2)
  20. }
  21. }
Success #stdin #stdout 0s 5280KB
stdin
Standard input is empty
stdout
Ejecutado por decisión aleatoria: Mensaje del Canal A