一起来做贼:Goroutine原理和Work stealing

最近在看Goroutine的实现原理,用户空间实现的并发模型。在用户空间进行调度不比 在内核级别,因为内核可以通过CPU中断夺回控制权,但是用户空间把控制权交给一段 代码之后,需要那段代码主动交出权力才可以。当然也可以通过一些trick,例如编译 的时候检测,然后自动插入某些让出CPU的代码。或者在生成的指令中插入。

关于Goroutine网上已经有很多篇很棒的文章了,我认为看这几篇就够了:

其中当一个P的G队列消耗完了,就会尝试去其他P的G队列里偷一些任务过来。看看wikipedia:


更多文章
  • 后端工程师学前端(二): CSS基础知识(规则与选择器)
  • Swift语法笔记
  • 读《管理的实践》
  • 后端工程师学前端(一): HTML
  • frp 源码阅读与分析(二):TCP内网穿透的实现
  • 五天不用微信 - 爽得很
  • frp 源码阅读与分析(一):流程和概念
  • 学习frp源码之简洁的在两个connection之间转发流量
  • 自己动手写一个反向代理
  • 读《债务危机》
  • 从XMonad迁移到i3
  • 服务器IP被ban学到的经验
  • socks5 协议详解
  • 开启HSTS(HTTP Strict Transport Security)
  • 从Chrome切换到Firefox