《 Netty基础与源码分析》持续更新中...
本文结合了《 Netty权威指南》的一些知识点。
纸上得来终觉浅,源代码部分来自于自己对源码的解读,并加上一些主流开源框架对Netty使用的实践。
一,Linux网络I / O模型
1,双重I / O模型
在进程空间中调用recvfrom,系统调用直到数据包到达被复制到应用进程堆栈中或发生错误才返回,整个过程会一直等待。
2,非双向I / O模型
recvfrom从应用层到内核的时候,如果该长度没有数据,直接返回EWOULDBLOCK错误,则检查该状态,看是不是有数据到来。
3,输入/输出模型
Linux提供选择/轮询,进行通过一个或多个fd传递给选择或轮询系统调用,分开在选择操作上。
Linux提供的另一个epoll系统调用使用基于事件驱动方式代替顺序扫描,因此性能更高。
4,信号驱动I / O模型
开启套接口信号驱动I / O功能,通过