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

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

  • 01 Go极简教程 目录

    极简教程的初衷是给已有其他语言基础的人阅读尽可能少的内容学习Go语言 Go极简教程 目录 Go极简教程 环境安装及...

  • 并发

    1、Go 程 Go 程(goroutine)是由 Go 运行时管理的轻量级线程。go f(x, y, z)会启动一...

  • Go调度相关

    go 调度go routinue在线程中进行调度 GPM的概念: G(Goroutine): 即Go协程,每个go...

  • 2019-05-23 Go语言学习四 并发

    一、Go程 Go 程(goroutine)是由 Go 运行时管理的轻量级线程。 会启动一个新的 Go 程并执行 f...

  • Go Goroutine

    协程并发 Go并发 什么是goroutine

  • 第06天(并发编程)_01

    01_创建goroutine.go 02_主goroutine先退出.go 03_主协程先退出导致子协程没有来得及...

  • GO语言基础(五)

    goroutine goroutine是由 Go 运行时管理的轻量级线程。 会启动一个新的 Go 程并执行 f, ...

  • Go语言并发

    Go语言并发 Go语言级别支持协程,叫做goroutine Go 语言从语言层面支持并发和并行的开发操作 Go并发...

  • Go语言并发学习笔记

    一、Go程 1.goroutine是由 Go 运行时管理的轻量级线程 我们称之为Go程是因为现有的术语—线程、协程...

网友评论

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

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