Good Note 2025-02-01 20:25 采纳率: 100%
浏览 5
已结题

Golang面试必问——GPM调度器是什么?

详细介绍Golang的GPM调度器,包括底层源码及其实现,以及一些相关的补充知识。

  • 写回答

3条回答 默认 最新

  • 好评笔记 2025-02-01 20:25
    关注

    前情提要
    并发与并行
    并行 (Parallel)
    并发 (Concurrency)
    关键区别
    进程和线程的区别
    协程
    解决的问题
    协程的优势
    Go的并发模型-CSP
    Go的调度模型-GPM源码
    Goroutine
    g 结构体
    stack结构体
    gobuf结构体
    schedt结构体
    Processor
    p结构体
    重要的全局变量
    Machine
    M 和 G 的关系
    M 和 P 的关系
    Go的调度模型-流程
    PM绑定
    创建G并加入P的私有队列
    P的私有队列满,加入G对应的全局队列
    M通过P消费G
    没有可执行的G,M和P断开绑定
    其他情况
    G被阻塞
    P随M进入系统调用
    监控线程sysmon
    runtime 包及相关功能
    runtime.Gosched()
    runtime.Goexit()
    runtime.GOMAXPROCS(n int)
    runtime.NumGoroutine()
    GMP 限制分析
    M 的限制
    G 的限制
    P 的限制
    ————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
    

    原文链接:https://blog.csdn.net/haopingbiji/article/details/145378072

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月9日
  • 已采纳回答 2月1日
  • 创建了问题 2月1日