Runtime包

GOMAXPROCS()

​ 用来设置可以并行计算的CPU核数最大值,并返回之前的值,具体使用方法上一篇有些,这里不再赘述

Gosched()

​ 用于让出CPU时间片,让出当前goroutine的执行权限,调度器安排其他等待的任务运行,并在下次某个时候从该位置恢复执行

Goexit()

​ 用于立即中止当前goroutine的运行(中止所在协程),而并不影响其他goroutine。⭐注意!Goexit()在中止当前协程前,还是会运行当前goroutine还没有执行的defer语句,切记,不允许在主函数调用Goexit(),会导致panic异常

runtime调度器是非常有用的东西,关于runtime包几个方法

  • Gosched:让当前线程让出cpu以让其他线程运行,它不会挂起当前线程,因此当前线程未来会继续执行

  • NumCPU:返回当前系统的CPU核数量

  • GOMAXPROCS:设置最大的可同时使用的CPU核数

  • Goexit:退出当前goroutine(但是defer语句会照常执行)

  • NumGoroutine:返回真该执行和排队的任务总数

  • GOOS:目标操作系统

  • GOROOT:返回本机的GO路径

举个栗子