DMA(Direct Memory Access),即直接存储器存取,是一种快速传送数据的机制。数据传递可以从适配卡到内存,从内存到适配卡或从一段内存到另一段内存。
利用它进行数据传送时不需要CPU的参与。每台电脑主机板上都有DMA控制器,通常计算机对其编程,并用一个适配器上的ROM(如软盘驱动控制器上的ROM)来储存程序,这些程序控制DMA传送数据。一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。
这里主要围绕着Java NIO展开,从Java NIO的基本使用,到介绍Linux下NIO API,再到Java Selector其底层的实现原理。
本文主要包括以下内容:1
2
3
4
5
6
7
8
9
10
111)ByteBuf的三种类型:heapBuffer(堆缓冲区)、directBuffer(直接缓冲区)以及Composite Buffer(复合缓冲区)。
2)ByteBuf的工作原理。
3)ByteBuf与JDK中ByteBuffer的区别以及对比
4)ByteBuf的引用计数器实现类AbstractReferenceCountedByteBuf分析。
5)UnpooledHeapByteBuf 基于堆内存缓冲器的源码分析
6)PooledDirectByteBuf 源码分析