1. Scatter/Gather机制简介
1. Scatter机制:即发散机制。发散指的是从Channel中读取是指在读操作时将读取的数据写入多个buffer中。因此,Channel将从Channel中读取的数据“分散(scatter)”到多个Buffer中。
2. Gather机制:即聚集机制。指在写操作时将多个buffer的数据写入同一个Channel,因此,Channel 将多个Buffer中的数据“聚集(gather)”后发送到Channel。
3. 用处:scatter / gather经常用于需要将传输的数据分开处理的场合,例如传输一个由消息头和消息体组成的消息,你可能会将消息体和消息头分散到不同的buffer中,这样你可以方便的处理消息头和消息体。(很熟悉,这很符合HTTP协议的数据传输了)
2. Scattering Reads
1. Scattering Reads是指将从一个channel中的数据读取到多个buffer中。如下图
2. 示例代码如下
ByteBuffer header = ByteBuffer.allocate(128);
ByteBuffer body = ByteBuffer.allocate(1024);
ByteBuffer[] bufferArray = { header, body };
channel.read(buff