Advertisement
Guest User

Untitled

a guest
May 19th, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.54 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "sync"
  6. )
  7.  
  8. func main() {
  9. var workers = 4
  10. var wg sync.WaitGroup
  11. var chains = make([]chan int, workers)
  12. for i := 0; i < workers; i++ {
  13. chains[i] = make(chan int)
  14. wg.Add(1)
  15. go func(c chan int) {
  16. defer wg.Done()
  17. for {
  18. n, more := <-c
  19. if more {
  20. fmt.Println(n)
  21. } else {
  22. fmt.Println("close")
  23. return
  24. }
  25.  
  26. }
  27.  
  28. }(chains[i])
  29. }
  30.  
  31. for i := 0; i < 1000; i++ {
  32. chains[i%workers] <- i
  33. }
  34.  
  35. for i := 0; i < workers; i++ {
  36. close(chains[i])
  37. }
  38.  
  39. wg.Wait()
  40.  
  41. fmt.Println("Hello, playground")
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement