文章目录
1.EventLoopThread
-
任何一个线程,只要创建并运行了EventLoop,都称之为IO线程
-
IO线程不一定是主线程
-
muduo并发模型one loop per thread + threadpool
(1)一个程序有多个IO线程,这些IO线程可以使用IO线程池来管理。所以是IO线程池(主要处理IO事件,调用EventLoop.runInLoop()也可以执行计算任务)+计算线程池(计算任务)
(2)IO线程池所对应的类是EventLoopThreadpool类 -
为了方便今后使用,定义了EventLoopThread类,该类封装了IO线程,功能:
(1)EventLoopThread创建了一个线程
(2)在线程函数中创建了一个EvenLoop对象并调用EventLoop::loop,处于事件循环的状态 -
eg:30\jmuduo\muduo\net\EventLoopThread.h
30\jmuduo\muduo\net\EventLoopThread.cc
30\jmuduo\muduo\net\CMakeLists.txt
30\jmuduo\muduo\net\TimerQueue.cc -
eg测试:30\jmuduo\tests\Reactor_test06.cc
30\jmuduo\tests\CMakeLists.txt -
测试: