#20210824 EventLoopThread
源码阅读(muduo::net)
如果有问题,欢迎交流!!!
EventLoopThread Class
创建一个线程执行loop()
循环,并返回该EventLoop
对象的地址。EventLoopThread Class
控制其创建的线程和loop()
循环的生命期。
数据成员
EventLoop* loop_
本
EventLoopThread Class
所创建的EventLoop
对象所在的地址
bool exiting_
初始化为
false
,析构函数中设为true
Thread thread_
负责执行
loop()
循环的线程
MutexLock mutex
锁,保护
loop_
和cond_
Condition cond_
条件变量,
thread_
通过cond_
通知父线程EventLoop
对象创建完成。
ThreadInitCallback callback_
以
EventLoop&
为参数,由thread_
执行
成员函数
EventLoopThread(const ThreadInitCallback& cb = ThreadInitCallback(),const string& name = string());
构造函数,初始化变量,初始化线程
~EventLoopThread()
析构函数,退出
loop()
循环,退出线程
EventLoop* startLoop()
开始子线程的运行,获得新建的
EventLoop
对象,并返回
void threadFunc()
子线程执行的函数,在其中执行
callback_
,创建EventLoop
对象,并调用loop()