1. 协程
- 定义:coroutine,也叫轻量级线程。
- 协程并发为为了提高程序执行的效率,线程阻塞期间去执行其它指令,并不一直等待。
- 完成并发的方法:
- 进程并发->稳定性强
- 线程并发->节省资源
- 协程并发->效率高
2. Goroutine:go程
- 创建于进程中,直接使用go关键字,放置于函数调用前面,产生一个Go程。
- 特性:主go程结束,子go程也随之消失。
- 函数
runtime.Gosched()
:出让当前go程所占用的cpu时间片,当再次获得CPU,从出让位置继续恢复执行。- return之前的defer有效;
runtime.Goexit()
:结束调用该函数的当前go程,runtime.Goexit()
之前注册的defer都生效runtime.GOMAXPROCS()
:用来设置可以并行计算的CPU核数的最大值,并返回之前的设置值。首次调用返回默认值。