美文网首页
【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