返回介绍

上卷 程序设计

中卷 标准库

下卷 运行时

源码剖析

附录

4.4 线程

发布于 2024-10-12 19:15:58 字数 2130 浏览 0 评论 0 收藏 0

                         +------+      +--------+-------------------------+
                   +---> | newm | ---> | allocm | new(m), mcommoninit, g0 |
                   |     +------+      +--------+-------------------------+
                   |                   | newm1  | newosproc               |
                   |                   +--------+-------------------------+
                   |                                   |                   
                   |                                   |                   
+-------+      +--------+                              v                   
| wakep | ---> | startm |                         +--------+--------------+
+-------+      +--------+                         | mstart | mstart1 (fn) |
                   |                              +--------+--------------+
                   |                                               |       
                   |     +------------+                            |       
                   +---> | mget       |                            v       
                         +------------+                       +----------+ 
                         | notewakeup | -----------//-------> | schedule | 
                         +------------+                ^      +----------+
                                                       |            |
                                                       |            |
                                                       |            v
                                                  +-------+--------------+
                                                  | stopm | findrunnable |
                                                  +-------+--------------+
  • wakep: 唤醒 MP 执行任务。
  • startm: 新建或唤醒闲置 M。
  • newm: 新建 M。
  • mget: 获取闲置 M。
  • newproc: 新建系统线程。
  • mstart, mstart1: 线程入口函数。
  • schedule: 调度函数。
  • findrunnable: 查找可用任务。
  • stopm: 停止 MP,进入闲置休眠状态。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文