golang学习笔记——协程
当主协程退出后子协程也会退出
package main
import (
"fmt"
"time"
)
func main() {
go func() {
i := 0
for {
i++
fmt.Println("son i = ", i)
time.Sleep(time.Second)
}
}()
for i := 0; i < 3; i++ {
fmt.Println("main i = ", i)
time.Sleep(time.Second)
if i == 2 {
break
}
}
}
runtime包
- runtime.Gosched() 让出当前执行权限
- runtime.Goexit() 终止当前协程
- runtime.GOMAXPROCS() 设置执行指令的cpu核数,返回上一次执行设置的cpu核数