1 Star 0 Fork 0

Paul_Zhen / java-review

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
netty.md 2.23 KB
一键复制 编辑 原始数据 按行查看 历史
Paul_Zhen 提交于 2021-08-05 00:11 . 复习redis

linux五种IO模型?什么是阻塞式IO?非阻塞式IO?同步IO与异步IO?

网络IO的场景:应用进程需要从内核读取数据,此时内核需要从网卡拷贝数据,然后把数据从内核态拷贝到用户态准备就绪后,最后再通知应用进程开始处理。(数据流向:应用进程请求从内核获取数据 网卡-〉内核态-〉用户态 内核通知应用进程开始处理数据)

https://juejin.cn/post/6844903728718462990#heading-9

阻塞与非阻塞(线程的状态模型)

同步与异步(消息通信机制),前四种都是同步的,因为都有某些阶段需要阻塞自己。

img

BIO(Bloking IO)和NIO(Non-bloking io)、AIO(Asynchronous io)区别?

1.BIO是同步阻塞的,适用文件IO。

2.NIO是同步非阻塞的,通过多路复用,由一个线程处理多个连接请求。适用于连接数较多,且连接时间短的应用。

3.AIO是异步非阻塞的,适用于连接数较多,且连接时间长的应用,比如游戏服务器。

I/O多路复用的底层支持?

linux系统 的select/poll 和epoll函数的支持。

select/poll,epoll的区别?

select/poll被调用后需要遍历fd的状态,而epoll被调用后,只需要判断readList不为空即可,当有fd就绪的时候,执行回调函数,效率更快。

select-poll-epoll

netty的核心组件?

https://blog.csdn.net/qq_35190492/article/details/113174359

Channel

Channel是 Java NIO 的一个基本构造。可以看作是传入或传出数据的载体。因此,它可以被打开或关闭,连接或者断开连接。

EventLoop 与 EventLoopGroup

EventLoop 定义了Netty的核心抽象,用来处理连接的生命周期中所发生的事件,在内部,将会为每个Channel分配一个EventLoop。

EventLoopGroup 是一个 EventLoop 池,包含很多的 EventLoop。

ServerBootstrap 与 Bootstrap

Bootstarp 和 ServerBootstrap 被称为引导类

ChannelHandler 与 ChannelPipeline

ChannelFuture

1
https://gitee.com/Paul_Zhen/java-review.git
git@gitee.com:Paul_Zhen/java-review.git
Paul_Zhen
java-review
java-review
master

搜索帮助