I/O

I/O

1:常见的 I/O 模型

  • unix 系统中
    • 同步阻塞
    • 同步非阻塞
    • I.O 多路复用
    • 信号驱动
    • 异步 I/O
    • 轮询
    • 终端
    • DMA
    • 通道?
  • BIO
    • 同步阻塞
    • 应用程序发起请求之后,就一直都等待数据的返回,一直阻塞
  • NIO
    • Non- blocking I/O
    • 面向缓冲的,基于通道的I/O
    • 多路复用
    • 线程首先发起select 调用,询问数据是否准备就绪
    • 等内核数据准备好了,线程再发起read调用
    • 多路复用器
      • 只需要一个线程便可以管理多个连接
      • 当数据到了之后,才会为其进行服务
  • AIO
    • 异步IO模型
    • 基于时间和回调机制来实现的
      • 应用操作之后会直接返回,不会堵塞
      • 当后台处理完成之后,操作系统会通知相应的线程进行后续的操作

2:I/O 分为哪几种

  • 按照流的流向,可以分为输入流和输出刘
  • 按照操作的单元,分为字节流和字符流
  • 按照流的角色,分为节点流和处理流

3:为什么有了字节流还有字符流

  • 字符流是由Java虚拟机将字节码转化得到的,这个转换是比较耗时的,并且可能还会在编码类型上出问题
  • 直接提供一个操作字符的接口,方便我们平时对字符进行流操作。
  • 如果我们是音频,视频,字节流是比较好的
  • 如果是字符的话,用字符流比较好
  • 面向字节流的inputstream 和 outpurstream
  • 面向字符的reader 和 writer
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值