整体结构
Channel -- fd的封装,里面包含了fd发生状态变化时应该调用哪个回调
EventLoop -- one loop per thread,EventLoop就是反应堆,也就是负责统一管理事件集合,也就是fd
EpollPoller -- epoll的封装,每个EventLoop里都有一个epoll,它就作为事件分发器,当channel发生事件后,返回发生事件的channel给Eventloop,然后再调用channel上的回调
TcpConnection -- 作为和客户端的连接,里面包含了Channel,它们一一对应,通过TcpConnection给Channel设置的callback
TcpServer -- 启动类,负责创建整个server,里面包含一个Acceptor,负责接受新用户连接,然后把连接分给EventLoop,并且创建TcpConnection