JAVA——重点非阻塞模型:NIO模型及IO操作步骤

Posted big-data-hins

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA——重点非阻塞模型:NIO模型及IO操作步骤相关的知识,希望对你有一定的参考价值。

二、重点非阻塞模型:NIO模型
1. Channel:和流等级一样,双向的,可读可写
2. Buffer:存数据的地方,可以用来读写
3. Selector:NIO的核心类,可以监听多个channel的时间(连接打开,数据到达)-->使得单线程可以管理多个channel,只有在读写事件发生时才找线程过来读写
4. NIO基于channel和buffer操作
  a. 数据总是从channel读取到buffer
  b. 或从buffer写到channel
5. 非阻塞实现:
  a. 线程从channel请求读取数据,仅能获得能够直接使用的数据,
  b. 无法使用时,可以去做其他事情,常用于其他channel的IO操作

技术图片

IO操作的两个阶段:
1. 准备数据
2. 将数据复制到用户线程上,让线程可以使用数据
NIO和多路复用的区别是,NIO一直占用cpu一直在channel之间进行读写,多路复用是,读写事件发生时才让线程来读写

以上是关于JAVA——重点非阻塞模型:NIO模型及IO操作步骤的主要内容,如果未能解决你的问题,请参考以下文章

java nio及操作系统底层原理

Linux IO模型与Java NIO

JAVA-IO模型(BIO,NIO,AIO)

Java IO体系与NIO和BIO体系面试题

IO通信模型同步非阻塞模式NIO(NonBlocking IO)

NIO系列——之IO模型