【网络编程】零拷贝
一、传统IO传统的 IO 将一个文件通过 socket 写出,其工作流程如下:java 本身并不具备 IO 读写能力,因此 read 方法调用后,要从 java 程序的用户态切换至内核态,去调用操作系统(Kernel)的读能力,将数据读入内核缓冲区。这期间用户线程阻塞,操作系统使用 DMA(Direct Memory Access)来实现文件读,其间也不会使用 cpuDMA 也可以理解为硬件单元,用来解放 cpu 完成文件 IO从内核态切换回用户态,将数据从内核缓冲区读入用户缓冲区(即 b