12. Go极简教程 goroutine:Go程

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极简教程 继续阅读( 目录)

    原文作者:超级大柱子
    原文地址: https://www.jianshu.com/p/bf2c28770876
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞