基于多反应堆的高并发服务器

我要开发同款
呵呵哒热爱编程2024年03月07日
51阅读
开发技术C/C++

作品详情

平台工具:vscode 远程 Linux 开发,cmake 构建 项目地址:https://github.com/heheda102410/C-ReactorServer
1. Listener: 监听特定端口,等待客户端的连接请求
2. EventLoop:一个生产者和消费者模型,消费者是 Dispatcher 是一个事件分发模型,使用 epoll/poll/select 检测对应的文件描述
符的事件。另外,还有一个任务队列 TaskQueue 来管理 Channel 节点
3. ThreadPool 线程池: 用于处理并发连接,每个新连接都会有一个子线程处理。主线程可以从线程池中取出某个子线程的反应堆实
例,再将处理的任务放到其反应堆模型里边。此时在 TaskQueue 里边就多出来了一个节点。在遍历任务队列时,读到这个节点之后,
就需要把当前的这个节点添加到 Dispatcher 对应的检测模型里边。主线程与子线程通过任务队列进行交互,子线程处理通信相关的
文件描述符操作
4. TcpConnection: 每个客户端连接都会有一个对应的 TcpConnection 实例,用于处理该连接的通信
5. TcpConnection 指定了读回调和写回调,当检测到了对应的文件描述符的读事件或写事件被触发/被激活了,这个框架就会自动的
调用事件对应的处理函数,这种机制就叫做反应堆机制,本质就是回调函数
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论