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
功能的调用,否则程序已退出而不打印数字。