linux五种IO模型?什么是阻塞式IO?非阻塞式IO?同步IO与异步IO?
网络IO的场景:应用进程需要从内核读取数据,此时内核需要从网卡拷贝数据,然后把数据从内核态拷贝到用户态准备就绪后,最后再通知应用进程开始处理。(数据流向:应用进程请求从内核获取数据 网卡-〉内核态-〉用户态 内核通知应用进程开始处理数据)
https://juejin.cn/post/6844903728718462990#heading-9
阻塞与非阻塞(线程的状态模型)
同步与异步(消息通信机制),前四种都是同步的,因为都有某些阶段需要阻塞自己。
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就绪的时候,执行回调函数,效率更快。
netty的核心组件?
Channel是 Java NIO 的一个基本构造。可以看作是传入或传出数据的载体。因此,它可以被打开或关闭,连接或者断开连接。
EventLoop 定义了Netty的核心抽象,用来处理连接的生命周期中所发生的事件,在内部,将会为每个Channel分配一个EventLoop。
EventLoopGroup 是一个 EventLoop 池,包含很多的 EventLoop。
Bootstarp 和 ServerBootstrap 被称为引导类
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。