您当前的位置: 首页 >  nio

小志的博客

暂无认证

  • 0浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Netty—— 概念剖析(NIO vs BIO)

小志的博客 发布时间:2022-09-25 21:17:08 ,浏览量:0

目录
    • 一、tream 与 channel
    • 二、 IO 模型
      • 2.1、五种IO 模型
      • 2.2、同步与异步
      • 2.3、IO 模型图解

一、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 多路复用 在这里插入图片描述 在这里插入图片描述

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.0427s