Closed Alice52 closed 5 years ago
the relation of buffer, channel, selector, pipe
用于源节点与目标节点的连接. 在 Java NIO 中负责缓冲区中数据的传输. Channel 本身不存储数据(类似于铁路), 因此要配合缓冲区使用(火车)
所有的数据都是使用 Buffer 在 Channel 中传输的
Selector 是源资源与目标资源之间建立一个机制, 当准备工作什么的都做好了, 才会连接目标资源成为 Channel
Pipe 是一个管道, Channel 为其中的一个个路线,, 且每个 Channel 都是单方向的
周而复始
阻塞IO模型: 同步IO
非阻塞IO模型: 同步IO
IO复用模型: 同步IO
信号驱动的IO模型: 同步IO
异步IO模型:异步IO
https://mp.weixin.qq.com/s?__biz=MzU3MDAzNDg1MA==&mid=2247489873&idx=2&sn=a2f7f940375c692c71bcc04061cb235c
同步和异步说的是消息的通知机制,阻塞非阻塞说的是线程的状态
IO
IO[BIO/Block IO]
NIO[No-Block IO]: nio 同步非堵塞式io 选择器多路复用轮询channel
AIO: aio异步非堵塞式io不是多路复用 是回调
Socket
conclusion
the relation of buffer, channel, selector, pipe
用于源节点与目标节点的连接. 在 Java NIO 中负责缓冲区中数据的传输. Channel 本身不存储数据(类似于铁路), 因此要配合缓冲区使用(火车)
所有的数据都是使用 Buffer 在 Channel 中传输的
Selector 是源资源与目标资源之间建立一个机制, 当准备工作什么的都做好了, 才会连接目标资源成为 Channel
Pipe 是一个管道, Channel 为其中的一个个路线,, 且每个 Channel 都是单方向的
IO 分类
周而复始
; 大量线程时就 频繁切换 CPU ...IO 模型
阻塞IO模型: 同步IO
非阻塞IO模型: 同步IO
IO复用模型: 同步IO
信号驱动的IO模型: 同步IO
异步IO模型:异步IO
Reference