文档目录
Work-Stealing 线程池
本节目录
- 全局队列的瓶颈 第一阶段实现的线程池有一个全局任务队列,所有线程共享一个 mutex。 当任务数量很大、每个任务执行时间极短时: 线程 1: 线程 2: 线程 3: 🔒 …
- Work-Stealing 的设计 Work-Stealing 的核心思想:每个线程有自己的任务队列,线程优先处理自己的任务。自己的队列空了,才去"偷"别人的。 线程 1 线程 2 线程 3 …
- 简易 Work-Stealing 实现 class WorkStealingThreadPool { std::vector<std::thread> workers_; …
- 全局队列 vs Work-Stealing 对比 对比 全局队列 Work-Stealing 实现复杂度 简单 复杂 每个任务的取队列开销 1 次锁争用 极少争用(自己队列无竞争) 负载均衡 自然均衡(谁 …