golang GMP模型 Work Stealing偷多少?
参考答案
结论:GMP模型中,当P本地队列空时,会从其他随机P偷取约一半的G。核心要点:1.GMP:G协程、M内核线程、P逻辑处理器,每个P有本地运行队列(数组最大256);2.工作窃取:P本地无G时,先查全局队列,再随机选其他P,从其本地队列偷取 len/2 向上取整 个G到自身队列;3.偷一半为平衡负载且减少后续争用;若全局空且无可偷,M自旋或休眠,由netpoll唤醒;4.示例:P1有4个G,P2空,P2偷P1的2个G。
题目整理自公开面经,答案由校招宝自研生成,仅供参考