Go 调度器实现原理分析
为什么要分析
- 面试可能会遇到
- 加深对语言特性方面的理解
- 为实现高性能的服务实现理论支持
- 了解一个优秀的调度器如何设计
目标
- 能清晰的给别人讲清楚,golang 语言中的调度器如何实现
- 能对项目中的代码性能优化,提出合理的建议。
- 基于golang 的调度器自己实现一个简化版本的调度器。
学习方式
- 查找资料,确定阅读的范围
- 抽象出我们要解决的问题模型
- 自己思考该如何实现,参考golang 作者如何实现
- 在实现调度器中,有哪些挑战,如何解决的
- 后续golang 的调度器如何演化
实践
第一步,获取网络资料
简单搜索,获取了几篇比较好的文章,如下
国外的一个老师撰写的系列文章
1) Scheduling In Go : Part I - OS Scheduler
2) Scheduling In Go : Part II - Go Scheduler
3) Scheduling In Go : Part III - Concurrency
国内同学的翻译
go scheduler 的一篇博客,介绍的比较全
[https://morsmachine.dk/go-scheduler]
go scheduler作者设计文档
[https://docs.google.com/document/d/1TTj4T2JO42uD5ID9e89oa0sLKhJYD0Y_kqxDv3I3XMw/edit#]
国内同学写的比较棒的文章,涉及具体实现
大彬_一起学Golang系列