Java-IO思维导图笔记

Java-IO

IO模型

读写原理

  • 读和写并不是内存和物理设备直接操作, 而是需要通过两步

    • 内核线程缓存区和物理设备

      • 操作系统内核(如Kernel)完成
    • 内核线程缓存区和用户线程缓存区

      • read : 内核缓存区复制到用户线程区
      • write: 用户线程缓存区复制到内核缓存区
  • 这么设计的目的

    • 减少系统中断, 提升性能

      • 大家都知道,外部设备的直接读写,涉及操作系统的中断。发生系统中断时,需要保存之前的进程数据和状态等信息,而结束中断之后,还需要恢复之前的进程数据和状态等信息。为了减少这种底层系统的时间损耗、性能损耗,于是出现了内存缓冲区。
      • 底层操作会对内核缓冲区进行监控,等待缓冲区达到一定数量的时候,再进行IO设备的中断处理,集中执行物理设备的实际IO操作,这种机制提升了系统的性能

同步异步, 阻塞非阻塞

  • 同步异步

    • 同步异步是指服务端(或内核)是否主动发送状态到客户端(或用户线程)
    • 客户端需要不断的去请求服务端获取最终结果, 属于同步CAS
    • 异步, 客户端不需要多次访问服务端, 服务端如果准备处理好了, 会告诉客户端
  • 阻塞非阻塞

    • 阻塞非阻塞是指客户端(或用户线程)的操作是否是可以进行其他操作, 还是只能等待

四种模型

  • BIO

    • 同步阻塞IO

      • Java传统的IO就是这种

        • 读操作图

    • 具体应用

      • JAVA-IO-字节字符流

        • Java字节字符流.html
      • 网络流

        • Socket

        • ServerSocket

        • demo

          • BIOClientTest.java
          • BIOServer.java
          • BIOServerMuilt.java
            - 客户端的Socket和服务端用ServerSocket.accept() 得到的Socket其实是一个实例
          
  • NIO

    • 同步非阻塞IO

      • 注意并不是java中的NIO

        • 读示例

      • 很少直接使用

  • IO多路复用

    • 异步阻塞IO

    • 具体应用

      • Java-NIO

        • 3大元素

          • Channel

            • 一个Channel可以理解为一个通道, 类比BIO的socket。 可以得到输入,也可以得到输出

            • 常用子类

              • FileChannel

                • 文件通道, 是阻塞式的. 不能绑定到Selector
              • SocketChannel

                • TCP连接的客户端和服务器端都会用到

                • 创建

                  • open()
                  • ServerSocketChannel.accept()//服务器端创建
                  • SelectionKey.channel()
                • 其他方法

                  • connect

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinBin_Bang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值