package main import . "fmt" import "os" import "strconv" import "time" import "math/rand" func iter(b int, c chan int) { for i := 0; i < b; i++ { c <- i time.Sleep(time.Duration(rand.Intn(4)) * time.Second) } } func main() { n, _ := strconv.Atoi(os.Args[1]) a := make(chan int) /* Scrive i primi n interi su a con pause. */ go iter(n, a) /* Controlla ogni 200 millisecondi se è arrivato qualcosa in maniera non bloccante. */ for { time.Sleep(200 * time.Millisecond) select { case x := <- a: Println("È arrivato", x) default: Println("Niente") } } }