文章字数:222,阅读全文大约需要1分钟
NIO
- 同步,非阻塞
IO
NIO之所以是同步,是因为它的accept/read/write方法的内核I/O操作都会阻塞当前线程。
但又说是非阻塞,即读取到信息的处理并不在主线程上进行,所以也是非阻塞的。 - 组成部分
Channel
通道:一个可以读和写的对象,相比于只能单向的流对象,速度更快。通过IO
通道可以实现异步处理。Buffer`缓存:该对象本质就是一块可以写入然后读取的数据的内存块。
使用流程1
2
3
41. 写入到缓冲区
2. 调用buffer.flip()切换成读模式
3. 读取数据
4. 调用buffer.clear()或buffer.compat()方法清除缓冲区,以备下次使用。缓存有三个重要属性
1
2
31. Capacith :内存大小
2. Position :待写入位置或者当前读取位置
3.