博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第十五章:输入和输出(I/O)
阅读量:5938 次
发布时间:2019-06-19

本文共 847 字,大约阅读时间需要 2 分钟。

一:流分类   

   抽象基类: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多路复用   ..........

 

 

 

                                                                                                                                                                                                                                                                                                               

转载于:https://www.cnblogs.com/njqa/p/5995729.html

你可能感兴趣的文章
《配置管理最佳实践》——2.10 建立构建过程
查看>>
《C++入门经典(第5版•修订版)》——2.6 问与答
查看>>
PLM调研第二天
查看>>
《精通Linux设备驱动程序开发》——1.5 Linux发行版
查看>>
《术以载道——软件过程改进实践指南》—第1章1.3节如何实施CMMI
查看>>
Harris’s Linked List
查看>>
(流式、lambda、触发器)实时处理大比拼 - 物联网(IoT)\金融,时序处理最佳实践
查看>>
什么Linux服务器最适合你?
查看>>
git 换行符问题,统一linux风格
查看>>
SQL on Linux Run on Docker
查看>>
C语言程序设计实践(OJ)-初识函数
查看>>
Spark机器学习9· 实时机器学习(scala with sbt)
查看>>
数据结构实践——队列数组
查看>>
从Demo到日千万PV,就是快! – 爱线下的上云实践
查看>>
Linux 时钟精度 与 PostgreSQL auto_explain (explain timing 时钟开销估算)
查看>>
架构师速成-架构目标之可用性
查看>>
云栖TechDay精华文章合集
查看>>
Java 深、浅克隆
查看>>
设计模式(八)之单例模式
查看>>
协同过滤算法 R/mapreduce/spark mllib多语言实现
查看>>