当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- 条形码识别性能低,如何优化Dynamsoft Barcode Reader解码性能
- 7. Swarm builds clusters
- 20个XR项目路演,近20个资本机构出席!诚邀您参加2020 Qualcomm XR生态合作伙伴大会
- Stm32f030c6t6 compatible to replace mm32spin05pf
- 如何创建交互式内核密度图表
- 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
- cubemx做stm32 USB开发
- 打工人好物——磨炼钢铁意志就要这样高效的电脑
- Erd-online free online database modeling tool
猜你喜欢
RFID fixed assets management system for fire equipment
如何使用甘特图图层和筛选器
Windows 10 Bluetooth management page 'add Bluetooth or other devices' option click no response solution
Common syntax corresponding table of mongodb and SQL
Common mathematical basic formulas of recursive and backtracking algorithms
南京标志设计,logo设计公司
消防器材RFID固定资产管理系统
[learning] interface test case writing and testing concerns
JVM class loading mechanism
8.Swarm创建维护和水平扩展Service
随机推荐
“非洲用户的付费意愿并不低”——专访四达时代研发总监张亮
Getting started with varhart xgantt
python3操作Jenkins模块api
How to manage the authority of database account?
插件Bilibili新版0.5.5
Google browser realizes video playback acceleration function
三步轻松理解Kerberos协议
Unexpected element.. required element
The first choice for lightweight GPU applications is the NVIDIA vgpu instance launched by Jingdong Zhilian cloud
Windows 10 Bluetooth management page 'add Bluetooth or other devices' option click no response solution
条形码识别器Dynamsoft Barcode Reader v7.5全新上线!
August 14, 2020: what are the execution engines for data tasks?
超高频RFID医疗血液管理系统应用
如何使用甘特图图层和筛选器
Introduction to Jenkins (2) declarative pipeline
Reserved battery interface, built-in charge and discharge circuit and electricity meter, quickly help easily handle hand-held applications
测试攻城狮必备技能点!一文带你解读DevOps下的测试技术
Js字符串-String字符串对象方法
STM32F030K6T6兼容替换灵动MM32F031K6T6
The memorandum model of behavior model