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
功能的呼叫,否則程式已退出而不列印數字。