zoukankan      html  css  js  c++  java
  • 第十五章:输入和输出(I/O)

    一:流分类   

       抽象基类:InputStream和Reader        抽象类不能用于创建模板哦!

                     OutputStream和Writer

        方向:  以内存为中心!

         输入流(读)

                  输出流(写)

        数据单元:(字节流:以InputStream和OutputStream作为基类; 字符流:以Reader和Writer作为基类)

         字节流:8byte (字节)

                  字符流:16位字符

        角色:   

          节点流:与数据源直接相连

                 处理流:封装节点流     (装饰器设计模式)


    对象的序列化:把内存中的java对象转换为与平台无关的二进制流!(保存、传输)

    系统序列化、自定义序列化

    编码和解码

    文件锁:排它锁、共享锁

        

    二:操作

        1.File类:操作文件和目录的!          

        

    三:解惑

    (1)之前看《深入浅出nodeJS》一直傻傻分不清楚:同步IO   异步IO   阻塞IO  非阻塞IO ;近期总结一下:

    IO请求的两个阶段

     a:发出IO请求( 等待资源阶段 & 排队阶段)    

     b:完成实际的IO操作 ( 使用资源阶段 & 服务阶段)

    阻塞IO和非阻塞IO:如果发出IO请求会阻塞线程(请求资源被上一个使用者使用还没有被释放时),就是阻塞IO。反之,非阻塞IO。

                                     阻塞IO:资源不可用时,IO请求一直阻塞,直到反馈结果(有数据或超时)。

                                     非阻塞IO:资源不可用时,IO请求离开返回,返回数据标识资源不可用。  

    同步和异步: 如果IO是由OS处理,再将结果返回给应用程序,就是异步IO。         使用回调函数的函数(更准确:异步函数): 我只负责调用,发起请求,调用完交给OS帮我处理

                          IO,IO成功了,通知我!(轮询机制在里面) 

                           如果IO需要应用程序本身去执行,会阻塞线程,就是同步IO。

    阻塞和非阻塞: 发出IO请求是否会阻塞线程! 

    (2) CPU密集型   IO密集型

    (3) 长轮询  短轮询

    (4) IO多路复用   ..........

                                                                                                                                                                                                                                                                                                                   

  • 相关阅读:
    Docker login报错一例
    Ubuntu 18.04设置dns
    docker日志引擎说明
    Docker简介与安装配置
    使用traefik作为kubernetes的ingress
    Axiom3D:Ogre动画基本流程与骨骼动画
    Axiom3D:Ogre中Mesh文件格式分析(一)
    Axiom3D:数据绑定基本流程
    3D引擎Axiom的选择与学习.
    初试PyOpenGL四 (Python+OpenGL)GPU粒子系统与基本碰撞
  • 原文地址:https://www.cnblogs.com/njqa/p/5995729.html
Copyright © 2011-2022 走看看