傳統硬件的堵塞以下,從內存中讀取數據,而後寫到磁盤,而CPU一直等到磁盤寫完成,磁盤的寫操做是慢的,這段時間CPU被堵塞不能發揮效率。服務器
使用非堵塞的DMA以下圖:CPU只是發出寫操做這樣的指令,作一些初始化工做,DMA具體執行,從內存中讀取數據,而後寫到磁盤,當完成寫後發出一箇中斷事件給CPU。這段時間CPU是空閒的,能夠作別的事情。這個原理稱爲Zero.copy零拷貝。線程
Netty底層基於上述Java NIO的零拷貝原理實現:3d