2019独角兽企业重金招聘Python工程师标准>>>
Java NIO: Channels and Buffers//通道和缓冲区
Java NIO: Non-blocking IO//异步IO
//一个线程可以请求通道读取数据到buffer中,当通道读取数据到buffer中的时候,这个线程依然可以做其它的事情,buffer数据读到channel也是一样的
Java NIO: Selectors
//一个选择器可以对象可以管理多个通道比如 connection opened, data arrived,这样的话 一个线程就可以管理多个通道做一些数据的操作
Channels and Buffers
主要的实现 buffer的类
ByteBuffer
CharBuffer
DoubleBuffer
FloatBuffer
IntBuffer
LongBuffer
ShortBuffer
主要的 channel
FileChannel
DatagramChannel
SocketChannel
ServerSocketChannel
这些通道可以被用做 UDP + TCP network IO, and file IO
Selectors//适用于低业务量
A Thread uses a Selector to handle 3 Channel's
一个selector 允许一个线程处理多个通道,假使你有多个连接(channel),但是适用于低业务量,使用selector 注册在通道上 然后调用select()方法,这个方法将会阻塞,直到有一个或者多个注册在通道上的事件返回,
一旦方法返回,线程便可以处理这些事件,例如incoming connection(链接到来), data received(数据接收)
//未完待续。。。