前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go-标准库-runtime(五)

Go-标准库-runtime(五)

原创
作者头像
堕落飞鸟
发布2023-04-23 07:38:19
1450
发布2023-04-23 07:38:19
举报
文章被收录于专栏:飞鸟的专栏

其他函数

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 其他函数
    • Goexit
      • NumCPU
        • NumGoroutine
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档