ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### Gosched runtime.Gosched()用于让出CPU时间片,让出当前goroutine的执行权限,调度器安排其他等待的任务运行, 并在下次某个时候从该位置恢复执行. 这就像跑接力赛,A跑了一会碰到代码runtime.Gosched()就把接力棒交给B了,A歇着了,B继续跑. ### 实例 下面的例子本来只能打印两次main,因为主协程执行完后退出了,所以不会执行子协程. 使用runtime.Gosched() 让出时间片,先执行子协程,然后再执行主协程. ~~~ go func() { for i := 0; i < 5; i++ { fmt.Println("go") } }() for i := 0; i < 2; i++ { //先让出时间片,让别的协程执行,它执行完,再回来执行此协程 runtime.Gosched() fmt.Println("main") } ~~~ ~~~ go go go main main ~~~