Add select statement example

This commit is contained in:
2026-02-18 11:17:54 +01:00
parent e13bee6d21
commit 0a60703a9e
2 changed files with 45 additions and 0 deletions

44
avanzado.go Normal file
View File

@@ -0,0 +1,44 @@
package main
import (
"fmt"
"time"
)
func Saluda() {
fmt.Println("Hola desde un goroutine")
}
func imprimeNums(n int) {
for i := 0; i < n; i++ {
fmt.Println(i)
time.Sleep(time.Millisecond)
}
}
func main() {
//go -> envia a otro hilo, las goroutinas son concurrentes, se ejecuta en paralelo
go Saluda()
time.Sleep(time.Second)
fmt.Println("fin del goroutine")
go imprimeNums(5)
go imprimeNums(5)
time.Sleep(time.Second)
// chan
ch := make(chan int)
go func() {
ch <- 64
}()
val := <-ch // espera hasta que se reciba un valor en el canal
fmt.Println(val)
ch2 := make(chan string, 2) // canal con bufer de 2 elementos
ch2 <- "hola"
ch2 <- "mundo"
fmt.Println(<-ch2)
fmt.Println(<-ch2)
}