Netty—— 概念剖析(NIO vs BIO)
Posted 小志的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netty—— 概念剖析(NIO vs BIO)相关的知识,希望对你有一定的参考价值。
目录
一、tream 与 channel
- stream 不会自动缓冲数据,channel 会利用系统提供的发送缓冲区、接收缓冲区(更为底层)。
- stream 仅支持阻塞 API,channel 同时支持阻塞、非阻塞 API,网络 channel 可配合 selector 实现多路复用。
- 二者均为全双工,即读写可以同时进行。
- 当调用一次 channel.read 或 stream.read 后,会切换至操作系统内核态来完成真正数据读取,而读取又分为两个阶段,分别为:
(1)、等待数据阶段
(2)、复制数据阶段
二、 IO 模型
2.1、五种IO 模型
- 同步阻塞。
- 同步非阻塞。
- 同步多路复用。
- 异步阻塞。
- 异步非阻塞。
2.2、同步与异步
- 同步:线程自己去获取结果(一个线程)。
- 异步:线程自己不去获取结果,而是由其它线程送结果(至少两个线程)。
2.3、IO 模型图解
-
阻塞 IO
-
非阻塞 IO
-
多路复用
-
异步 IO
-
阻塞 IO vs 多路复用
以上是关于Netty—— 概念剖析(NIO vs BIO)的主要内容,如果未能解决你的问题,请参考以下文章