Goroutines 基本计划

package main

import (
    "fmt"
    "time"
)

func say(s string) {
    for i := 0; i < 5; i++ {
        time.Sleep(100 * time.Millisecond)
        fmt.Println(s)
    }
}

func main() {
    go say("world")
    say("hello")
}

goroutine 是一个能够与其他函数同时运行的函数。要创建一个 goroutine,我们使用关键字 **go,**然后是函数调用:

package main

import "fmt"

func f(n int) {
  for i := 0; i < 10; i++ {
    fmt.Println(n, ":", i)
  }
}

func main() {
  go f(0)
  var input string
  fmt.Scanln(&input)
}

通常,函数调用执行函数体内的所有语句并返回到下一行。但是,使用 goroutines,我们会立即返回到下一行,因为它不会等待函数完成。因此,包括对 Scanln 功能的调用,否则程序已退出而不打印数字。