package main import ( "fmt" "time" ) func main() { msg := make(chan string, 10) msg2 := make(chan string, 5) go func() { msg <- "a" msg <- "b" msg <- "c" msg2 <- "1" msg2 <- "2" msg2 <- "3" }() go func() { for v := range msg { fmt.Println(v) } }() //1 close(msg) for v := range msg2 { fmt.Println(v) //2 作用和1类似,避免deadlock if len(msg2) <= 0 { break } } time.Sleep(1) } 1 2 a b c 3
go chan
go func()中的内容如果没有sleep,主线程不保证能执行完
猜你喜欢
转载自xiangjie88.iteye.com/blog/2382164
今日推荐
周排行