文档目录
总结
第一阶段(基本线程池):
固定线程 + 任务队列 + mutex + cv
任务必须在锁外执行
第二阶段(带返回值):
packaged_task + future
调用者能获取结果和异常
第三阶段(Work-Stealing):
每个线程自己的 deque
front 自己取,back 被别人偷
短小高频任务时比全局队列快
第四阶段(定时器):
优先队列:O(log N) 插入,精度高
时间轮:O(1) 插入,精度受槽大小限制
网络服务器场景时间轮更优
第五阶段(整合):
定时器线程只负责"什么时候触发"
线程池负责"执行"——不阻塞定时器
第六阶段(TCP 线程模型):
Reactor:epoll_wait + 同步读写
Proactor:io_uring + 异步读写
你的日志库已经是 Proactor 了