模型

BIO 和 NIO 的区别
BIO 好比是通道传输,一来一回
NIO 好比是管道传输,一堆来一堆回。

BIO 模型

1
2
3
4
5
6
7
________                        _________
| |-----------------------| |
| |-----------输入--------| |
| | | |
| |-----------输出--------| |
| |-----------------------| |
|-------| |-------|

输入和输出都需要建立一条管道。
也就是说,数据的传输是单向的,出去从输出流通道走,回来从输入流通道走。
面向流,通道传输的是流

NIO 模型

1
2
3
4
5
6
7
_________                       _________
| |-----------------------| |
| | | |
| | 输入-输出 | |
| | | |
| |-----------------------| |
|-------| |-------|

NIO 的通道没有传输数据的能力,通道的建立,相当于铺了铁路,而数据的传输需要火车。
火车指的就是缓冲区。
火车出发前会装一批人,而不会只装一个人。
火车来回都只用一条通道。
面向缓冲区,将数据装入缓冲区,由缓冲区进行传输。