要用通信去共享内存,channel之前来回通行达到切换goroutine的目的
b1 := make(chan bool)
b2 := make(chan bool)
i := 1
go func() {
for ; i <= 10; i ++ {
fmt.Println(i) // 第一步
<- b2 // 第二步(卡住,第四步后释放)
b1 <- true // 第六步
}
}()
go func() {
for ; i <= 10; i ++ {
fmt.Println(i) // 第三步
b2 <- true // 第四步
<- b1 // 第五步 (卡住,第六步后释放)
}
}()
time.Sleep(time.Millisecond)