30天自制C++服务器day12-将服务器改写为主从Reactor多线程模式

在上一天的教程,我们实现了一种最容易想到的多线程Reactor模式,即将每一个Channel的任务分配给一个线程执行。这种模式有很多缺点,逻辑上也有不合理的地方。比如当前版本线程池对象被EventLoop所持有,这显然是不合理的,线程池显然应该由服务器类来管理,不应该和事件驱动产生任何关系。如果强行将线程池放进Server类中,由于Channel类只有EventLoop对象成员,使用线程池则需要注册回调函数,十分麻烦。

更多比较可以参考陈硕《Linux多线程服务器编程》第三章

今天我们将采用主从Reactor多线程模式,也是大多数高性能服务器采用的模式,即陈硕《Linux多线程服务器编程》书中的one loop per thread模式。
此模式的特点为:
服务器一般只有一个main Reactor,有很多个sub Reactor。服务器管理一个线程池,每一个sub Reactor由一个线程来负

30天自制C++服务器day12-将服务器改写为主从Reactor多线程模式最先出现在Python成神之路

版权声明:
作者:Mr李
链接:https://www.techfm.club/p/14996.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>