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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部