Java面试题更新 2026-08-05

请阐述 Reactor 线程模型的核心设计思想,包括其主要组件、线程分工以及相较于传统阻塞 I/O 模型的优势。

后端开发技术原理Netty

考察说明

考查对 Reactor 线程模型的理解,包括事件驱动、组件划分和并发模型。

回答思路

  1. 【回答框架 1】Reactor 线程模型是事件驱动架构,核心由 Reactor(事件分发器)和 Handlers(事件处理器)组成。Reactor 负责监听 I/O 事件,当事件就绪时,将其分发给对应的 Handler 处理。
  2. 【回答框架 2】单 Reactor 单线程:一个 Reactor 线程负责接收连接和分发事件,Handler 在同一线程中执行,适用于处理时间短、CPU 密集场景。
  3. 【回答框架 3】单 Reactor 多线程:Reactor 线程只负责分发,业务处理由工作线程池执行,避免 Reactor 线程阻塞,提升吞吐,但 Reactor 仍是单点。
  4. 【回答框架 4】主从 Reactor:mainReactor 只负责处理连接,subReactor 负责后续 I/O 事件的读写和分发,是 Netty 采用模型,支持高并发连接。
  5. 【关键点 1】Reactor 模型基于事件驱动,将 I/O 操作转化为事件通知。
  6. 【关键点 2】主要组件包括 Reactor、Acceptor、Handler。
  7. 【关键点 3】分为单线程、多线程和主从多线程三种变体。
  8. 【关键点 4】提高系统对高并发和海量连接的支撑能力。
  9. 【易错点 1】单 Reactor 单线程中,若 Handler 执行耗时操作,会阻塞整个线程,导致其他连接无法处理。
  10. 【易错点 2】使用多线程时,需要考虑线程安全与上下文切换开销。
  11. 【易错点 3】不能简单认为多线程一定比单线程快,需要权衡资源与场景。