Go routine

协程
- 轻量级“线程”
- 非抢占式多任务处理,由协程主动交出控制权
- 编译器/解释器/虚拟机层面的多任务
- 多个协程可能在一个或多个线程上运行
goroutine的定义
- 任何函数只需加上go就能送给调度器运行
- 不需要在定义时区分是否是异步函数
- 调度器在合适的点进行切换
- 使用-race检测数据访问冲突
goroutine可能切换的点
- i/o select
- channel
- 等待锁
- 函数调用(有时)
- routime.goSched()

猜你喜欢

转载自blog.csdn.net/YeYuLuoJin/article/details/81435057