goroutine基础
程序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()
}
这个程序的执行结果为空,因为主进程退出了。
程序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:
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)
}
//将会看到两个进程交替打印数字
}

浙公网安备 33010602011771号