CCnet | 单线程reactor演变为多线程
ccnet从单线程演变为多线程
ccnet现状:
- epoll
- linux平台
- 事件循环
- 单线程
- reactor
- 监听和新连接的事件都在主线程中
单线程的ccnet
EventLoop: 整个事件循环。EPollPoller: 负责事件的收集。Channel:负责事件的分发。Acceptor:处理客户端新连接,绑定监听回调时间。TcpConnection: 包含EventLoop组件,Channel组件,接收缓冲区和发送缓冲区,负责数据的收发。TcpServer:包含EventLoop组件,Acceptor组件,客户端连接map,还有回调接口Buffer: 缓冲区
*ccnet的单线程模型只是对epoll进行了封装,然后根据reactor模型在代码上进行了组件的区分,但是整体操作还是单线程,不能充分利用硬件资源。TcpServer的回调函数中,数据接收和业务处理在同一条线程中。

