ReadableByteChannel
A ReadableByteChannel is a type of Channel that can read bytes.
Read operations are synchronous on a ReadableByteChannel, that is, if a read is already in progress on the channel then subsequent reads will block until the first read completes. It is undefined whether non-read operations will block.