Neo's Blog

不抽象就无法深入思考
不还原就看不到本来面目!

0%

高性能服务器系列-go的协程管理

M(Machine),可以理解成一个线程,真正执行P的线程。系统线程,想要在CPU上执行代码必须有线程,通过系统调用clone创建

P(Processor),一个P表示一个逻辑处理器,用于调度G。每一个Processor有一个称为G的队列,队列里放了等待被调度运行的协程。M必须获得P才能执行P队列中的G代码,否则会陷入休眠

G,一段goroutine代码,放到P对应的队列上,等待被调度运行。代表一个计算任务,由代码和上下文(如当前代码执行的位置、栈信息、状态等)组成。

你的支持是我坚持的最大动力!