wtysos11 / blogWiki

Use to store public paper and organize them.
17 stars 4 forks source link

go语言基础:GMP模型 #242

Open wtysos11 opened 3 years ago

wtysos11 commented 3 years ago

Golang 的 goroutine 是如何实现的? - 腾讯技术工程的回答 - 知乎 https://www.zhihu.com/question/20862617/answer/921061289

协程的基础:#217 Go风格协程库

wtysos11 commented 3 years ago

传统做法:GM模型

G可以看作是执行的协程,M是一个操作器(可以看作与内核线程对应)

G被放在一个全局的等待队列上,M每次会从这个队列中获取协程进行执行。 问题:

wtysos11 commented 3 years ago

GMP模型

调度:golang调度的职责就是为需要执行的Go协程G寻找执行者M以及执行的准许和资源P。并没有一个调度机的尸体,调度是需要发生调度时由m执行runtime.shedule方法进行的

调度实际