当前位置:网站首页>2020-11-06: go, let's talk about the scheduler.
2020-11-06: go, let's talk about the scheduler.
2020-11-06 22:43:00 【Fuda Dajia architect's daily question】
Fogo's answer 2020-11-06:
·MPG Model :goroutine The concurrency model of can be summarized as MPG Model ;
·MPG Concept : Threads (machine, System threads , Physical threads )- kernel (processor)- coroutines (goroutine, User threads , Logical threads );
· Many to many scheduling model : The overall scheduling follows the many to many model , Multiple collaborations ( About a million ) Scheduling in multiple threads at the same time ( About a thousand ) Next ;
·LRQ(LocalRunningQueue): Local run queue , One M Execute in a P In the context of ,P There is a G queue ;
·GRQ(GlobalRunningQueue): Global run queue ,G Not initialized or not LRQ When it's ready to mount, it's thrown in GRQ;
·GRQ=>LRQ:MP Will be in LRQ Check after execution GRQ, And steal the task from it and mount it to the current LRQ In the implementation of , They also have regular checks ;
· The purpose of scheduling is : The purpose of scheduling is to prevent thread blocking 、 idle 、 By OS Hang up (syscall);
· Prevent threads M jam :G1 coroutines IO When you leave MP,G2 From the current MP Of LRQ Pop up and execute ;
· Prevent threads M idle :M1 When idle , From M2 Of LRQ To steal half of the mission , Mount to your own LRQ In the implementation of ;
· Prevent threads M By OS Hang up (syscall):P With LRQ Hang to the bottom of other threads to execute , When syscall At the end ,M Will try to G0 Mount to other LRQ Medium or GRQ in ;
detailed go Scheduler model reference :
Go Chinese language network :https://studygolang.com/articles/9610
Simple books :https://www.jianshu.com/p/f9024e250ac6
版权声明
本文为[Fuda Dajia architect's daily question]所创,转载请带上原文链接,感谢
边栏推荐
- Count the number of project code lines
- 7.Swarm搭建集群
- ImageMagick - add watermark
- Bluetooth broadcast chip for Shanghai giant micro
- Jenkins installation and deployment process
- cubemx做stm32 USB开发
- Composition of MRAM cache
- How to manage the authority of database account?
- The first choice for lightweight GPU applications is the NVIDIA vgpu instance launched by Jingdong Zhilian cloud
- The use of Xunwei imx6 development board device tree kernel menuconfig
猜你喜欢
Js字符串-String字符串对象方法
Configuration of AP hotspot on xunwei-imx6ull development board
Gantt chart grouping activities tutorial
Three steps to understand Kerberos Protocol easily
如何使用甘特图图层和筛选器
August 18, 2020: introduce Mr process?
Git SSH bad permissions
Image processing toolkit imagexpresshow to view events
Git SSH bad permissions
高速公路二维码定位报警系统
随机推荐
JS string - string string object method
Reserved battery interface, built-in charge and discharge circuit and electricity meter, quickly help easily handle hand-held applications
20 XR projects roadshows, nearly 20 capital institutions attended! We sincerely invite you to attend the 2020 qcomm XR eco Partner Conference
南京标志设计,logo设计公司
ImageMagick - 添加水印
2020-09-04: do you understand the function call convention?
vue3 新特性
关于DevOps的七大误解,99%的人都曾中过招!
【涂鸦物联网足迹】物联网基础介绍篇
Nodejs中使用jsonwebtoken(JWT)生成token的场景使用
PHP后门隐藏技巧
How to optimize the decoding performance of dynamsoft barcode reader
磁存储芯片STT-MRAM的特点
2018中国云厂商TOP5:阿里云、腾讯云、AWS、电信、联通 ...
图像处理工具包ImagXpress使用教程,如何查看事件
2020-08-29: process thread differences, in addition to the inclusion relationship, the underlying details?
Cloudquery v1.2.0 release
python3操作Jenkins模块api
The method of local search port number occupation in Windows system
如何解决谷歌Chrome浏览器空白页的问题