channel_block2.go 271 B

12345678910111213141516171819202122232425
  1. package main
  2. import (
  3. "fmt"
  4. "time"
  5. )
  6. func main() {
  7. ch1 := make(chan int)
  8. go pump(ch1)
  9. go suck(ch1) // tons of numbers appear
  10. time.Sleep(1e9)
  11. }
  12. func pump(ch chan int) {
  13. for i := 0; ; i++ {
  14. ch <- i
  15. }
  16. }
  17. func suck(ch chan int) {
  18. for {
  19. fmt.Println(<-ch)
  20. }
  21. }