Go-标准库-runtime(五)

2023-04-23 07:38:19 浏览数 (1)

其他函数

除了上述常用的函数外,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())
}

上面的代码输出当前程序中的协程数。

go

0 人点赞