Go语言 之Gosched

package main

import (
    "fmt"
    "runtime"
)

func main() {
    //匿名函数
    go func(s string) {
        for i := 0; i < 2; i++ {
            fmt.Println(s)
        }
    }("world")

    for i := 0; i < 2; i++ {
        //时间出让
        runtime.Gosched()
        fmt.Println("hello")
    }
}

主协程进入main()函数,进行代码的执行。当执行到go func()匿名函数时,创建一个新的协程,开始执行匿名函数中的代码,主协程继续向下执行,执行到runtime.Gosched( )时会暂停向下执行,直到其它协程执行完后,再回到该位置,主协程继续向下执行。

posted @ 2019-07-04 09:12  样子2018  阅读(776)  评论(0编辑  收藏  举报