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)
}
}

猜你喜欢

转载自blog.csdn.net/C540743204/article/details/107463193