💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### 主从Reactor多线程 ![](https://img.kancloud.cn/3e/15/3e152875419772b64a3990a29e9bd6bb_935x970.png) 针对单 Reactor 多线程模型中,Reactor 在单线程中运行,高并发场景下容易成为性能瓶颈,可以让 Reactor 在多线程中运行。 方案说明: 1)Reactor 主线程 MainReactor 对象通过 Select 监控建立连接事件,收到事件后通过 Acceptor 接收,处理建立连接事件; 2)Acceptor 处理建立连接事件后,MainReactor 将连接分配 Reactor 子线程给 SubReactor 进行处理; 3)SubReactor 将连接加入连接队列进行监听,并创建一个 Handler 用于处理各种连接事件; 4)当有新的事件发生时,SubReactor 会调用连接对应的 Handler 进行响应; 5)Handler 通过 Read 读取数据后,会分发给后面的 Worker 线程池进行业务处理; 6)Worker 线程池会分配独立的线程完成真正的业务处理,如何将响应结果发给 Handler 进行处理; 7)Handler 收到响应结果后通过 Send 将响应结果返回给 Client。 优点:父线程与子线程的数据交互简单职责明确,父线程只需要接收新连接,子线程完成后续的业务处理。 父线程与子线程的数据交互简单,Reactor 主线程只需要把新连接传给子线程,子线程无需返回数据。 这种模型在许多项目中广泛使用,包括 Nginx 主从 Reactor 多进程模型,Memcached 主从多线程,Netty 主从多线程模型的支持