系列文章目录和关于我 零丶背景 最近有很多想学的,像netty的使用、原理源码,但是苦于自己对于操作系统和nio了解不多,有点无从下手,遂学习之。 一丶网络io的过程 上图粗略描述了网络io的过程,了解其中的拷贝过程有利于我们理解非阻塞io,以及IO多路复用的必要性。 数据从网卡到内核缓冲区网卡通过DMA的方式将网络帧copy到内核空间并不是拷贝到内核空间就完事了,因为还需要根据协议对数据进行处理。所以网卡使用硬中断通知cpu,cpu响应后会使用网卡注册函数进行收包,然后协议层处理网络帧。 数据从内核缓冲区到用户空间根据协议处理好的数据,还需要拷贝到用户空间才能被运行在内核态的应用程序使用...

  QCiQYD0n5SkG   2023年11月01日   49   0   0 Java

系列文章目录和关于我 零丶引入 在Netty源码学习2——NioEventLoop的执行中,我们学习了NioEventLoop是如何进行事件循环以及如何修复NIO空轮询的bug的,但是没有深入了解IO事件在netty中是如何被处理的,下面我们以服务端demo代码为例子,看下和IO事件处理密切的Channel 如上在编写netty服务端的时候,我们一般只需要指定Channel类型,以及实现ChannelHandler在对应方法中编写业务逻辑代码即可。 在Netty中,NioEventLoop是事件的调度中心,它控制了Io事件和其他任务的调度,但是io事件的处理是依赖ChannelHandler...

  QCiQYD0n5SkG   2023年11月01日   84   0   0 Java
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~