程序1:協程
package main import ( "fmt" "time" ) func test () { var i int for { fmt.Println(i) i++ time.Sleep(time.Second) } } //main 是主進程 func main () { //go 開啓了一個協程 go test() }
這個程序的執行結果爲空,由於主進程退出了。blog
程序2:進程
package main import ( "fmt" "time" ) func test () { i := 0 for { fmt.Println(i) i++ time.Sleep(time.Second) } } func main () { go test() time.Sleep(time.Second * 10) //將會打印10個數字,由於主進程持續了10秒才退出 }
程序3:class
package main import ( "fmt" "time" ) func test () { i := 0 for { fmt.Println(i) i++ time.Sleep(time.Second) } } func main () { go test() i := 100 for { fmt.Println(i) i-- if i == 90 { break } time.Sleep(time.Second) } //將會看到兩個進程交替打印數字 }