package mainimport ("fmt""time")var POOL = 100func groutine1(p chan int) {for i := 1; i <= POOL; i++ {p <- iif i%2 == 1 {fmt.Println("groutine-1:", i)}}}func groutine2(p chan int) {for i := 1; i <= POOL; i++ {<-pif i%2 == 0 {fmt.Println("groutine-2:", i)}}}func main() {msg := make(chan int)go groutine1(msg)go groutine2(msg)time.Sleep(time.Second * 1)}
运行结果
groutine-1: 1groutine-2: 2groutine-1: 3groutine-2: 4groutine-1: 5groutine-2: 6groutine-1: 7groutine-2: 8groutine-1: 9groutine-2: 10groutine-1: 11groutine-2: 12groutine-1: 13groutine-2: 14groutine-1: 15groutine-2: 16groutine-1: 17groutine-2: 18groutine-1: 19groutine-2: 20groutine-1: 21groutine-2: 22groutine-1: 23groutine-2: 24groutine-1: 25groutine-2: 26groutine-1: 27groutine-2: 28groutine-1: 29groutine-2: 30groutine-1: 31groutine-2: 32groutine-1: 33groutine-2: 34groutine-1: 35groutine-2: 36groutine-1: 37groutine-2: 38groutine-1: 39groutine-2: 40groutine-1: 41groutine-2: 42groutine-1: 43groutine-2: 44groutine-1: 45groutine-2: 46groutine-1: 47groutine-2: 48groutine-1: 49groutine-2: 50groutine-1: 51groutine-2: 52groutine-1: 53groutine-2: 54groutine-1: 55groutine-2: 56groutine-1: 57groutine-2: 58groutine-1: 59groutine-2: 60groutine-1: 61groutine-2: 62groutine-1: 63groutine-2: 64groutine-1: 65groutine-2: 66groutine-1: 67groutine-2: 68groutine-1: 69groutine-2: 70groutine-1: 71groutine-2: 72groutine-1: 73groutine-2: 74groutine-1: 75groutine-2: 76groutine-1: 77groutine-2: 78groutine-1: 79groutine-2: 80groutine-1: 81groutine-2: 82groutine-1: 83groutine-2: 84groutine-1: 85groutine-2: 86groutine-1: 87groutine-2: 88groutine-1: 89groutine-2: 90groutine-1: 91groutine-2: 92groutine-1: 93groutine-2: 94groutine-1: 95groutine-2: 96groutine-1: 97groutine-2: 98groutine-1: 99groutine-2: 100