美文网首页
【golang】Gosched()、Goexit()、GOMAX

【golang】Gosched()、Goexit()、GOMAX

作者: 七八个星天 | 来源:发表于2021-01-09 23:48 被阅读0次
  • Gosched()当前协程等待执行,直到其他协程执行完毕后自动恢复,只有单核心时有效。
  • Goexit()终止当前协程。
  • GOMAXPROCS(n)设置CPU核心数/线程数,返回值是之前设置的CPU核心数。
package main

import (
    "fmt"
    "runtime"
)

func main() {
    //设置cpu核心个数
    fmt.Println(runtime.GOMAXPROCS(1))
    go func() {
        for i:=0;i<10;i++{
            //终止所在的线程
            runtime.Goexit()
            fmt.Println("AAAAA")
        }
        fmt.Println("C")
    }()
    for i:=0;i<10;i++{
        //让出时间片,在单核情况下会等待其他线程执行完自动恢复执行,但多核情况下不会
        runtime.Gosched()
        fmt.Println("BBBBBBBBBB")
    }
}

相关文章

网友评论

      本文标题:【golang】Gosched()、Goexit()、GOMAX

      本文链接:https://www.haomeiwen.com/subject/zognoktx.html