程序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) } //将会看到两个进程交替打印数字 }