美文网首页
12. Go极简教程 goroutine:Go程

12. Go极简教程 goroutine:Go程

作者: 超级大柱子 | 来源:发表于2018-06-03 15:12 被阅读225次

    goroutine称之为Go程是因为现有的术语—线程、协程、进程等等均无法准确传达它的含义

    goroutine是通过Go的runtime管理的一个轻量级线程管理器

    goroutine是Go并行设计的核心

    go语句开启一个goroutine

    package main
    
    import (
        "log"
        "time"
    )
    
    func say(s string) {
        for i := 0; i < 5; i++ {
            log.Println(i, s, &s)
        }
    }
    
    func main() {
        // go 语句执行一个函数, 即开启一个goroutine线程
        go say("goroutine")
        say("sync")
        // 这里如果不使用time.Sleep, main函数很快就执行完了
        // 子线程还未执行完,整个主线程就结束了, 就不会打印goroutine
        time.Sleep(500 * time.Millisecond)
    }
    

    打印的内容:

    2018/06/03 15:11:23 0 sync 0xc42000e1e0
    2018/06/03 15:11:23 1 sync 0xc42000e1e0
    2018/06/03 15:11:23 0 goroutine 0xc42009e000
    2018/06/03 15:11:23 1 goroutine 0xc42009e000
    2018/06/03 15:11:23 2 goroutine 0xc42009e000
    2018/06/03 15:11:23 3 goroutine 0xc42009e000
    2018/06/03 15:11:23 2 sync 0xc42000e1e0
    2018/06/03 15:11:23 3 sync 0xc42000e1e0
    2018/06/03 15:11:23 4 sync 0xc42000e1e0
    2018/06/03 15:11:23 4 goroutine 0xc42009e000
    

    参考资料:
    http://go-tour-zh.appspot.com/

    Go极简教程 继续阅读( 目录)

    相关文章

      网友评论

          本文标题:12. Go极简教程 goroutine:Go程

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