ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 单Reactor单线程 ![](https://img.kancloud.cn/79/aa/79aa30dc47f07537ebefc3110fd74c60_955x630.png) 方案说明: 1)Reactor 对象通过 Select 监控客户端请求事件,收到事件后通过 Dispatch 进行分发; 2)如果是建立连接请求事件,则由 Acceptor 通过 Accept 处理连接请求,然后创建一个 Handler 对象处理连接完成后的后续业务处理; 3)如果不是建立连接事件,则 Reactor 会分发调用连接对应的 Handler 来响应; 4)Handler 会完成 Read→业务处理→Send 的完整业务流程。 优点:没有多线程、进程通信、竞争的问题,全部都在一个线程中完成。 缺点:性能问题,只有一个线程,无法完全发挥多核 CPU 的性能。Handler 在处理某个连接上的业务时,整个进程无法处理其他连接事件,很容易导致性能瓶颈。 可靠性问题,线程意外跑飞,或者进入死循环,会导致整个系统通信模块不可用,不能接收和处理外部消息,造成节点故障。 使用场景:客户端的数量有限,业务处理非常快速,比如 Redis,业务处理的时间复杂度 O(1)。