Runtime包的使用

Runtime包的使用
runtime包提供和go运行时环境的互操作,如控制go程的函数。它也包括用于reflect包的低层次类型信息;参见reflect报的文档获取运行时类型系统的可编程接口。

Gosched使当前go程放弃处理器,以让其它go程运行。它不会挂起当前go程,因此当前go程未来会恢复执行。

使用gosched让出主协程,子协程先执行
package main

import (
“log”
“runtime”
)

func main() {
go func() {
for i:=0;i<5 ;i++ {
log.Println(“go”)

  }

}()

for i:=0;i<7 ;i++ {
//使用gosched让出主协程,子协程先执行
runtime.Gosched()
log.Println(“hello”)
}

}
Runtime.goexit用法
使用会将后续的函数运行终止
package main

import (
“fmt”
“runtime”
)

func test() {

defer fmt.Println(“ccccccccccccccc”)
runtime.Goexit()
fmt.Println(“ddddddddddddddddddd”)
}

func main() {
//创建一个新的协程
go func() {
fmt.Println(“aaaaaaaaaaaaaaaaaaa”)
test()//调用别的函数
fmt.Println(“bbbbbbbbbbbbbbbbbbb”)
}()
//使用一个for循环做死循环,防止程序终止
for{

}

}
Runtime.gomaxprocs()用来设置并计算cpu核数的最大值,并返回之前的值
package main

import (
“fmt”
“runtime”
)

func main() {
n := runtime.GOMAXPROCS(1)//指定几核来运行
fmt.Print(n)
for {
go fmt.Print(2)
fmt.Print(0)
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值