tokio 源码解析
这一卷对着 tokio 1.54.1(tag tokio-1.54.1,commit b53b200)读源码。所有源码链接都指向这个 tag,行号不会随上游变化而失效。
tokio 主 crate 大约 10.9 万行,这一卷只沿两条主线读:
- 任务主线:
tokio::spawn之后,任务怎么分配内存、进入队列、被 worker 取出来 poll,挂起后又怎么被唤醒。 - IO 主线:
TcpStream::read返回Pending之后,谁在等就绪事件,事件来了又怎么找回原来的任务。
flowchart TB intro[00 导读] --> overview[01 全景] overview --> task[03 任务] task --> sched[04 调度器] overview --> rt[02 运行时骨架] rt --> io[05 IO 驱动] rt --> time[06 定时器] sched --> sync[07 同步原语] io --> api[08 用户层 API] time --> api sync --> design[09 设计取舍] api --> design design --> pit[10 常见坑] pit --> site[11 在本站中] site --> hands[12 动手]
从「导读」开始,它给出两种读法:快读只看每章开头的图和小结,精读跟着源码链接一行行看。
💬 关联讨论
发起讨论加载中...