在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Gosched:让出CPU时间片 Goexit:退出当前的协程 GOMAXPROCS:设置使用最大的CPU数量(哇,牛逼了。。。) package main import ( "fmt" "runtime" ) func main() { go func() { for i:=0; i<=5; i++ { fmt.Println("go") } }() for i:=0; i<=2 ; i++ { fmt.Println("hello") } } 如果程序写在这样的话,那么子协程是永远都不会被执行的,因为在go中向来都先执行主协程,这里主协程的循环明显比子协程要短,那么子协程永远都不会被执行 所以需要主协程让出时间片去执行子协程,应该写成这个样子 package main import ( "fmt" "runtime" ) func main() { go func() { for i:=0; i<=5; i++ { fmt.Println("go") } }() for i:=0; i<=2 ; i++ { //这里它必须让出时间片,让其它的协程执行完之后再回来执行它 runtime.Gosched() fmt.Println("hello") } } 执行的结果 go
hello
go
go
go
go
go
hello
hello
|
请发表评论