producer_consumer2.go 364 B

123456789101112131415161718192021222324252627282930
  1. // prod_cons.go
  2. /* producer-consumer problem in Go */
  3. package main
  4. import "fmt"
  5. var done = make(chan bool)
  6. var msgs = make(chan int)
  7. func produce() {
  8. for i := 0; i < 10; i++ {
  9. msgs <- i
  10. }
  11. done <- true
  12. }
  13. func consume() {
  14. for {
  15. msg := <-msgs
  16. fmt.Print(msg, " ")
  17. }
  18. }
  19. func main() {
  20. go produce()
  21. go consume()
  22. <-done
  23. }
  24. // Output: 0 1 2 3 4 5 6 7 8 9