其他函数
除了上述常用的函数外,runtime包中还提供了许多其他有用的函数,如下所示:
Goexit
Goexit函数可以使当前协程退出,但不会影响其他协程的运行。
代码语言:javascript复制package main
import (
"fmt"
"runtime"
)
func f() {
defer fmt.Println("f.defer")
runtime.Goexit()
}
func main() {
go func() {
defer fmt.Println("go.defer")
f()
}()
runtime.Gosched()
fmt.Println("main")
}
上面的代码创建了一个协程,该协程调用f函数,f函数中使用Goexit函数使当前协程退出。在main函数中,调用Gosched函数,使当前协程让出CPU时间片,以便其他协程运行。最后输出main。
NumCPU
NumCPU函数可以返回系统上可用的CPU核心数。
代码语言:javascript复制package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Println(runtime.NumCPU())
}
上面的代码输出系统上可用的CPU核心数。
NumGoroutine
NumGoroutine函数可以返回当前程序中的协程数。
代码语言:javascript复制package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Println(runtime.NumGoroutine())
}
上面的代码输出当前程序中的协程数。