NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
> # 交替打印 - 方式一 ~~~ package main import ( "fmt" "time" ) var i = 0 func main() { go A() go B() time.Sleep(time.Second * 60) } func A() { for { if i%2 == 0 { fmt.Println("a") i++ time.Sleep(time.Second) } } } func B() { for { if i%2 == 1 { fmt.Println("b") i++ time.Sleep(time.Second) } } } ~~~ - 方式二 ~~~ package main import ( "fmt" "time" ) func main() { ch1 := make(chan struct{}) ch2 := make(chan struct{}) go func() { for { <-ch1 fmt.Println("a") time.Sleep(time.Second) ch2 <- struct{}{} } }() go func() { for { <-ch2 fmt.Println("b") time.Sleep(time.Second) ch1 <- struct{}{} } }() ch1 <- struct{}{} time.Sleep(time.Second * 60) } ~~~