教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang面试题分析03_GMP调度器

golang面试题分析03_GMP调度器

发布时间:2022-01-13   编辑:jiaochengji.com
教程集为您提供golang面试题分析03,GMP调度器等资源,欢迎您收藏本站,我们将为您提供最新的golang面试题分析03,GMP调度器资源
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"/></svg><h4>GMP调度</h4>

操作系统中的程序可以往下分解为进程、线程和协程。Go中,协程被称为goroutine,被runtime进行调度。
GMP调度中,G代表goroutine,M代表线程,P是Processor,它包含了运行goroutine的资源,只有当 M 关联一个 P 后才能执行 G 。

<h4>
调度器的两大思想:</h4>

复用线程:
2个体现:1.work stealing,当本线程无可运行的G时,尝试从其它县城绑定的P偷取G,而不是销毁线程;2.hand off,当本线程因为G进行系统调用阻塞是,线程释放绑定的P,把P转移给其它空闲的线程执行;
利用并行:
GOMAXPROCS设置P的数量,当GOMAXPROCS大于1时,就最多有GOMAXPROCS个线程处于运行状态,这些线程可能分布在多个CPU核上同时运行,使得并发利用并行。

在Go中,线程是运行goroutine的实体,调度器的功能就是把可运行的goroutine分配到工作线程上。

<h4>
参考文献:</h4>

Go语言高阶:调度器系列(1)起源

到此这篇关于“golang面试题分析03_GMP调度器”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
golang面试题分析03_GMP调度器
goroutine 调度器
Golang 调度器 GMP 原理与调度全分析
想系统学习GO语言(Golang
golang相关学习贴
Golang-性能监控及调优
Golang常见面试题
golang runtime 简析
golang https 全局代理_Golang 调度器
goroutine调度原理

[关闭]
~ ~