流stream 在计算中的意思

题目:流在计算机中是什么意思?
从汉字角度,流做名词时指的是像水流的东西,也指江河溪涧离开源头后的部分。
从计算机角度,流是一种比喻,是一种抽象(java中class类),用于表示按存储顺序从头到尾传输的运动中的数据对象(可以理解为计算机中一串内存连续的二进制串,流动了起来)。
举例说明:
磁带上存储的数据只能从一头开始连续读取,尽管中间会卡顿,但还是会从磁头源源不断的按顺序输出数据直到输出完
像这样流动中的数据,就像水流一样,故可称其为流。

当我们播放‘在线’视频时,要进传输视频的时候,由于传输链路带宽的限制没有办法短时间内将全部视频数据加载到内存,然后再开始播放
通常采取的操作是边看边收数据,数据会不断的在链路上跑着,(这符合流的属性之一,运动),而且我们大概率是按时间顺序播放视频的,所
以接收方和发送方都采取按时间顺序传送视频数据的协议(这符合流的属性之二,按顺序传送),符合这两种属性的数据可以称其为流。
(内存即RAM,它相比于掉电不丢失的存储器 如访问时间在μm级的Flash 和 访问时间在ms级的磁盘 等,RAM的读写访问速度更快在10ns级,故在线视频的缓存地由此推测
肯定得在内存,由于内存比较有限,装不下完整的视频故缓存中只是一部分数据肯定会有舍弃的时候,如果要下载在线视频就得把他从缓存中按顺序搬到掉电不丢失的外存中,
从缓存到外存,流动中的数据也形成了一条流)

k & R 书中定义说 流是一种数据的源和目的地,这种数据与磁盘和外围设备相关联(外围设备和磁盘必然没有CPU和内存访问来的快
												    暗示这种数据必然传输有点慢必然需要RAM缓存
												    按顺序输入或输出的数据,这就具备了流的属性)
k & R 老爷子为什么会这么说呢?我觉得可能对于程序员视角而言,对流的操作看起来就像是把什么东西往流里边仍了一样,仍进去之
后就不关心流内部怎么运转了,所以就说流是源和目的
举个C++的例子:
	 stdout << "hellow bob"(将字符串“hello bob”流到输出缓冲区最终流到显示屏上)
	 stdin >> temp(将输入流的数据赋值给 temp 实际是将键盘输入流到缓冲区的数据再流给temp) 
stdin 和 stdout stderr 最终也与显示器 键盘 这 两种相对内存和CPU较慢的外部设备设计的,快速设备和慢速设备之间的交流又得架起缓存的桥梁又得顺序传送,这个缓存还得常驻内存,
持续源源不断的流转数据。没有优先级调度机制的话想必都是按顺序传送设计的把。

误区:
ISP 中的各缓存器中的数据不是流
主机中接收的视频缓存数据不是流

总结:运动中的按顺序传输的数据才是流

一点个人理解,学艺不精,还望各群友多指正。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值