day14-Thread+EventLoopThread+EventLoopThreadPool
Thread:最底层,真正的线程,负责跑 pthread。EventLoopThread:包装类,一个线程 + 一个 loop,让线程里跑 EventLoop。EventLoopThreadPool:管理者,创建一堆 EventLoopThread,形成线程池,对外提供 loop。
1 | EventLoopThreadPool (线程池:管理一堆线程) |
1. Thread 类(真正干活的线程)
- 作用:创建系统线程
- 内部跑一个
threadFunc函数 - 不关心 loop,只负责执行回调
2. EventLoopThread 类(线程绑定一个 loop)
- 内部创建一个 Thread
- 线程启动后,创建一个 EventLoop
- 让 loop 在这个线程里
loop()运行 - 对外接口:
startLoop()→ 返回创建好的 EventLoop*
3. EventLoopThreadPool 类(线程池)
- 创建 N 个 EventLoopThread
- 把每个线程的 EventLoop* 存到
loops_数组 - 对外提供:
getNextLoop()轮询获取 loopgetAllLoops()获取所有 loop
1 | 主线程 |
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.