Skip to content

Latest commit

 

History

History
9 lines (6 loc) · 423 Bytes

naive_coro.md

File metadata and controls

9 lines (6 loc) · 423 Bytes

单线程协程调度器

  • 每次切换协程时需要保存当前协程的栈给gc,gc有一个表key是协程的bp指针,value是协程的stackmap
  • 协程要退出的时候,需要把自己的栈从gc中删除
  • 每次go其实都是将任务加入到调度器的任务队列中
  • 主线程运行调度器逻辑,调度器一直试图执行(resume)对列里的协程,直到队列为空

resume 返回闭包