英特尔核心的numLogicalProcessors是8(2×4物理核)。Linux操作系统。因此,八个OS线程(M)可以并行工作。Go运行时可以在我的Go程序中分配八个上下文(P1、P2.P8- runtime.GOMAXPROCS(numLogicalProcessors))。

Go遵循M:N线程模型,其中N是OS线程,M是go程序的Go例程。
操作系统调度程序调度OS线程。线程状态为WAITING、RUNNABLE和EXECUTING。
去调度器计划去例程。常规状态是WAITING、RUNNABLE和EXECUTING。Goroutine是一个用户级线程。
M)?在将每个上下文(P)分配给每个OS线程(M)之前?M1)(由于时间片),那么如何使用P1管理G1的状态?P1是否从OS获得M1状态已更改的通知?发布于 2020-03-22 21:48:07
https://stackoverflow.com/questions/60804773
复制相似问题