JAVA——重点非阻塞模型:NIO模型及IO操作步骤
2021-04-08 19:28
标签:请求 重点 连接 tor info 技术 image nio load 二、重点非阻塞模型:NIO模型 IO操作的两个阶段: JAVA——重点非阻塞模型:NIO模型及IO操作步骤 标签:请求 重点 连接 tor info 技术 image nio load 原文地址:https://www.cnblogs.com/big-data-hins/p/13377531.html
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操作
1. 准备数据
2. 将数据复制到用户线程上,让线程可以使用数据
NIO和多路复用的区别是,NIO一直占用cpu一直在channel之间进行读写,多路复用是,读写事件发生时才让线程来读写