协程上下文切换的时机 1
- The use of the keyword go
- Garbage collection
- System calls
- Synchronization and Orchestration
- runtime.Gosched
- already run 100ms and call an un-inline function
第5、6点是额外加的,第6点存疑
疑问
time.Sleep会让线程sleep么?如果sleep的话,超过gomaxproces个sleep后,就没有线程可用了?
参考链接
- 也谈goroutine调度器
- goroutine 背后的系统知识
- 关于Go语言调度器实现细节的补充分析
- Go 语言对OS系统调用的处理
- Go 调度器相关数据结构
- Golang - 调度剖析
- Scheduling Multithreaded Computations by Work Stealing