goroutines.go 663 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package main
  2. import "fmt"
  3. func main() {
  4. letter := make(chan struct{})
  5. number := make(chan struct{})
  6. go func() {
  7. for i := 0; i < 26; i++ {
  8. <-number
  9. fmt.Printf("%c ", 'A'+i)
  10. letter <- struct{}{}
  11. }
  12. }()
  13. go func() {
  14. for i := 0; i < 26; i++ {
  15. <-letter
  16. fmt.Printf("%d ", i)
  17. number <- struct{}{}
  18. }
  19. }()
  20. number <- struct{}{}
  21. <-letter
  22. }
  23. //package main
  24. //
  25. //import "fmt"
  26. //
  27. //func main() {
  28. // ch := make(chan string) // 1. 造一根管道
  29. //
  30. // go func() { // 2. 启动一个工人(goroutine)
  31. // ch <- "hello from another goroutine" // 放进管道
  32. // }()
  33. //
  34. // msg := <-ch // 3. 主工人从管道拿数据
  35. // fmt.Println(msg)
  36. //}