首页
关于我
GMP模型
Go 语言 GMP 模型详解:M、P、Goroutine 之间的协作机制 |
发布时间:2026-01-05
GMP 模型
M Machine
Goroutine 实际运行载体,一个 M 表示一个内核线程,有时候也叫工作线程
不仅运行现有的任务,也会主动到其他的队列中寻找可运行的 G,尽可能的不让自己闲下来
P Processor
管理 G 对象和为运行提供“上下文”,其内部包含两个队列,一个是可运行的 G 队列,一个则是自由 G 列表
M 与一个 P 关联了才能执行 Go 代码
Goroutine
对一段需要并发执行代码的封装
推荐阅读:
1. 5钟IO模型 | 深入理解五种IO模型:阻塞、非阻塞、I/O复用、信号驱动与异步IO
2. 小试牛刀-执行shellcode | Python JIT 原理详解:运行时机器代码补丁与实践
3. 2019-12-17-grep-awk-sed-sort-etc | Mastering Linux Shell Commands for Efficient Text & Log Processing
4. 2020-01-09-sync-huge-database | Automated MySQL Database Synchronization using Bash Script
5. Python使用C或C++扩展类 | Python C/C++ 扩展类模块开发详解:从入门到成员属性方法绑定
6. 2019-12-17-grep-awk-sed-sort-etc | Mastering Linux Shell Commands for Efficient Text & Log Processing
7. 2020-01-09-sync-huge-database | Automated MySQL Database Synchronization using Bash Script
8. Python使用C或C++扩展类 | Python C/C++ 扩展类模块开发详解:从入门到成员属性方法绑定
9. 小试牛刀-执行shellcode | Python JIT 原理详解:运行时机器代码补丁与实践
10. GMP模型 | Go 语言 GMP 模型详解:M、P、Goroutine 之间的协作机制