Netty面试题及参考答案.docxVIP

  • 1
  • 0
  • 约5.32千字
  • 约 8页
  • 2026-11-16 发布于河北
  • 举报

Netty面试题及参考答案

一、基础概念题

1.什么是Netty?Netty解决了什么问题?

答案:

Netty是一个基于JavaNIO开发的高性能、异步事件驱动的网络通信框架。

原生JDK的NIO存在很多痛点:

NIO的Selector空轮询BUG,会导致CPU100%;

API底层抽象繁琐,开发难度大,需要手动处理编解码、半包粘包、线程模型、异常重连等;

没有成熟的线程模型封装,开发者容易写出线程安全问题;

缺少协议支持、流量控制、连接管理等通用能力。

Netty对NIO做了封装,屏蔽底层复杂细节,内置多种编解码器、成熟的Reactor线程模型、连接管理能力,快速开发TCP、UDP、HTTP、RPC这类网络服务。

答案:

BIO:同步阻塞IO。一个连接对应一个线程,连接没有数据时线程阻塞,并发高的时候线程爆炸,资源消耗大。适合连接数少的场景。

NIO:同步非阻塞IO。基于通道Channel、缓冲区Buffer、选择器Selector。少量线程轮询多个连接,连接就绪后才处理,多路复用。Netty底层默认使用NIO。

同步/异步:数据就绪后,是谁发起IO拷贝;阻塞/非阻塞:调用IO方法时线程会不会卡住等待。

3.什么是IO多路复用?

答案:

一个线程通过Selector(多路复用器)同时监听多个Channel的IO事件(可读、可写、连接就绪)。内核会批量返回就绪的连接,线程

文档评论(0)

1亿VIP精品文档

相关文档