Go —— GMP面试题

前言

关于GMP的详细讲解请移步:Go —— 协程

简单介绍一下Go的GMP调度模型

0)G:协程,M:系统线程,P:协程调度器

1)通过go func() 生成一个 G

2)G会优先放到P的本地队列,如果P的队列已满,则会放入全局队列中

3)G需要在M中执行,G通过P进行调度,M与P的关系是1:1对应的,如果P的本地队列为空,则会优先从全局队列中获取G,其次从其他MP组合中窃取G

4)M执行G的过程是一个循环的过程

5)如果M发生系统调度,则会释放P,P会找一个空闲的M进行执行,如果没有空闲的M,则会唤醒或者新建一个M

6)当M的系统调度停止后,会重新找空闲的P,如果找不到则会进入休眠或者销毁,G会被放入到全局队列中

问:M的数量是固定的还是动态的

在GMP调度的过程中,M会被动态唤醒、创建、休眠、销毁,所以是动态的

问:每一个P调用全局队列的概率大概为多少

大概为 1/p总数

P的个数默认为CPU的核数。每个P会周期性地查看全局队列中是否有G待运行并将其调度到M中执行,全局队列中的G主要来自从系统调用中恢复地G。之所以P会周期性地查看全局队列,是为了防止全局队列中的G长时间得不到调度机会而被“饿死”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/804268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++_List的学习

1.概述 1. list 是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代 2. list 的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素 3. list…

运营商名称 是如何显示到 手机通知栏上的?

在我们日常使用手机的过程中,经常会在通知栏或设置菜单中看到特定的运营商名称,例如"中国移动"、"中国联通"或"中国电信"等。 那么,这些运营商的名称是如何出现在我们手机上的呢?手机又是如何区分不…

软信天成:如何通过5个步骤获得高层对主数据管理项目的支持

如今,全球各地的组织正在采用主数据管理(MDM)以应对日益严峻的数据问题。然而,成功地实现 MDM 项目并非易事,这需要得到高层的全力支持。下面,软信天成将详细介绍五步策略,协助您获得高层对MDM项…

连接mysql或mariaDB报错:is not allowed to connect to this MariaDB server

1.报错信息:Host ‘192.168.3.91’ is not allowed to connect to this MariaDB server 2.报错原因:因为没有远程连接数据库的权限 一般为新创建数据库或新创建的用户没有远程连接数据库的权限,需要进行授权 # mysql -u root -p # use mysql…

属于我们Go语言的toString!

在 Go 语言中,类似于 Java 中的 toString() 方法,可以通过实现 String() 方法来自定义类型的字符串表示形式。这种机制使得在打印自定义类型的值时能够输出更加可读性高的字符串。在本文中,我们将探讨如何在 Go 中实现类似的功能,…

SCI一区 | Matlab实现OOA-TCN-BiGRU-Attention鱼鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测

SCI一区 | Matlab实现OOA-TCN-BiGRU-Attention鱼鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测 目录 SCI一区 | Matlab实现OOA-TCN-BiGRU-Attention鱼鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测预测效果基本介绍模型描述程序…

基于springboot实现常州地方旅游管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现旅游管理系统演示 摘要 随着旅游业的迅速发展,传统的旅游信息查询方式,已经无法满足用户需求,因此,结合计算机技术的优势和普及,针对常州旅游,特开发了本基于Bootstrap的常州地方旅游管…

Python2.7和Python3.6共存的环境中,如何使用 Python 3.6 的 pip 安装其他包(如scikit-learn)

在开发环境中同时安装多个 Python 版本是一种常见的情况,本文将介绍在Python2.7和Python3.6共存的环境中,如何使用 Python 3.6 的 pip 安装其他包(如scikit-learn)。 步骤: 确定 Python 3.6 的 pip 路径: …

MacOS初识SIP——解决快捷指令sh脚本报错Operation not permitted

前言 因为一些原因,设计了一套快捷指令,中间涉及到一个sh脚本的运行,通过快捷指令运行时就会报错:operation not permitted 奇怪的是在快捷指令窗口下运行一切正常,但是从其他地方直接调用,例如通过Comma…

WebGL入门

WebGL采用HTML5中新引入的<canvas>元素(标签),它定义了网页上的绘图区域。 1、Canvas是什么 在HTML5出现之前,如果你想在网页上显示图像,只能使用HTML提供的原生方案<img>标签。用这个标签显示图像虽然简单,但只能显示静态的图片,不能进行实时绘制和渲染。…

微服务 - (狂神)

什么是微服务&#xff1a; 微服务方案&#xff1a; 1. SpringCloud NetFlix 2. Dubbo 3. SpringCloud Alibaba 解决了什么问题&#xff1a; 1. 服务过多&#xff0c;客户端怎么访问 2. 服务过多&#xff0c;服务间怎么传值 3. 服务过多&#xff0c;如何治理 4. 服务过多…

【Flutter】三个Channel(Android-java / Ios-swift)

Channel 实现与原生通信 【1】MethodChannel flutter MethodChannel官方文档 通过MethodChannel来传递数据&#xff0c;调用方法 案例 分别调用Android和Ios原生的获取电量的方法 Flutter端 实例一个MethodChannel&#xff0c; 唯一标识name&#xff0c;定义方法名称get…

UVA814 邮件传输的代理交互 解题报告

UVA814 邮件传输的代理交互 解题报告 题目链接 https://vjudge.net/problem/UVA-814 题目大意 本题的任务为模拟发送邮件时MTA&#xff08;邮件传输代理&#xff09;之间的交互。所谓MTA&#xff0c;就是email地址格式usermtaname的“后面部分”。当某人从user1mta1发送给另…

JavaScript ECMAScript标准的与时俱进:从ES6至ES14的革新之路与关键技术特性剖析

ECMAScript&#xff08;通常缩写为ES&#xff09;是一种标准化的脚本语言规范&#xff0c;由ECMA International&#xff08;前身为European Computer Manufacturers Association&#xff0c;欧洲计算机制造商协会&#xff09;制定。自1997年发布首个版本以来&#xff0c;ECMAS…

设计模式之创建型模式---建造者模式

文章目录 建造者模式概述经典的建造者模式建造者模式的变种总结 建造者模式概述 建造者模式是一种广泛使用的设计模式&#xff0c;在三方开源库和各种SDK中经常见到。建造者设计模式在四人帮的经典著作《设计模式&#xff1a;可复用面向对象软件基础》中被提及&#xff0c;它的…

搭建前后端的链接(java)

搭建前后端的链接(java) 一.前提 1.1 javaEE 搭建前后端的链接首先需要用到javaEE&#xff0c;也就是java企业版&#xff0c;也就是java后端(后端javaSE) 利用javaEE和前端交互&#xff0c;javaSE和数据库交互&#xff0c;javaSE和javaEE之间再进行交互就实现了前后端的交互…

【vim 学习系列文章 19 -- 映射快捷键调用两个函数 A 和B】

请阅读【嵌入式开发学习必备专栏 之 Vim】 文章目录 映射快捷键调用两个函数 映射快捷键调用两个函数 在 Vim 中&#xff0c;如果想通过按下 gcm 来调用两个函数&#xff0c;比如 FunctionA 和 FunctionB&#xff0c;需要先定义这两个函数&#xff0c;然后创建一个映射。这个映…

设计模式|单例模式(Singleton Pattern)

文章目录 适用场景优缺点优点缺点 示例分布式部署情况下&#xff0c;保证单例常见面试题 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;它确保类只有一个实例&#xff0c;并提供一个全局访问点来访问这个实例。 适用场景 单例模式在许多…

2024-04-09 问AI: 在深度学习中,dropout层是什么?

文心一言 在深度学习中&#xff0c;Dropout层是一种正则化技术&#xff0c;用于防止神经网络过拟合。它通过在训练过程中随机地将一部分神经元的输出设置为0&#xff0c;来减少神经元之间的复杂共适应性&#xff0c;使得模型更加健壮&#xff0c;提高泛化能力。 具体来说&…

语音识别(录音与语音播报)

语音识别&#xff08;录音与语音播报&#xff09; 简介 语音识别人工智能技术的应用领域非常广泛&#xff0c;常见的应用系统有&#xff1a;语音输入系统&#xff0c;相对于键盘输入方法&#xff0c;它更符合人的日常习惯&#xff0c;也更自然、更高效&#xff1b;语音控制系…