package main import ( "fmt" ) func main() { c := make(chan int) go func() { for i := 1; i < 10; i++ { //奇数 c <- 1 if i%2 == 1 { fmt.Println("线程1打印:",i) } } }() go func() { for i := 1; i < 10; i++ { <- c //偶数 if i%2 == 0 { fmt.Println("线程2打印:",i) } } }() for {} }
思考:代码如果改成这样则顺序不正确?
//奇数 if i%2 == 1 { fmt.Println("线程1打印:",i) } c <- 1
来自anson博客
2021-06-30 17:26:17