使用多线程的原因
●单reactor线程既分发连接建立,又分发I/O,忙不过来,会使得客户端连接成功率偏低。
●新的硬件技术不断发展,多核多路CPU已经得到极大应用,单reactor不能充分利用CPU资源
主-从reactor模式
思想:
主反应堆线程只负责分发Acceptor连接建立,已连接套接字上的事件交给sub-reactor负责分发。其中sub-reactor的数量可以根据CPU的核数来灵活设置。
主-从reactor+worker threads模式
思想:
与主-从reactor模式的区别在于,将业务逻辑(decode+compute+encode)和I/O分发解耦,sub-reactor负责I/O事件,业务逻辑交给线程池处理。可以进一步利用多CPU特效,提高效率。