runtime
调度器是个非常有用的东西,关于 runtime
包几个方法:
-
Gosched:让当前线程让出
cpu
以让其它线程运行,它不会挂起当前线程,因此当前线程未来会继续执行 -
NumCPU:返回当前系统的
CPU
核数量 -
GOMAXPROCS:设置最大的可同时使用的
CPU
核数 -
Goexit:退出当前
goroutine
(但是defer
语句会照常执行) -
NumGoroutine:返回正在执行和排队的任务总数
-
GOOS:目标操作系统
- Caller
-
func Caller(skip int) (pc uintptr, file string, line int, ok bool)
参数:skip是要提升的堆栈帧数,0-当前函数,1-上一层函数,....返回值:
pc是uintptr这个返回的是函数指针
file是函数所在文件名目录
line所在行号
ok 是否可以获取到信息