一个goroutine sleep了,操作系统是怎么唤醒的

本文阅读 1 分钟
首页 golang 正文
题目序号:(270)
题目来源: 360
频次: 2

答案:阿纪、

  1. goroutine唤醒
    goroutine的唤醒涉及到一个很重要的函数(goready),它的作用就是唤醒waiting状态的goroutine.
    通过systemstack切到g0栈,在g0栈上发起调度.
    获取goroutine的状态.
    将waiting状态的goroutine切换到runable状态
    尝试唤起一个p来执行当前goroutine
  2. 注释: go程序中,每个M都会绑定一个叫g0的初代goroutine,它在M的创建的时候创建,g0的主要工作就是goroutine的调度、垃圾回收等.
本文来自投稿,不代表本站立场,如若转载,请注明出处:
syncpool的实现原理
« 上一篇 09-17
问了sync.Map(我说我对sync.Pool比较熟,就说Pool了)
下一篇 » 09-17

发表评论

发表评论