如何理解程序中的stream

無名 发表于: 2016-06-23   最后更新时间: 2016-06-23  
  •   0 订阅,522 游览

如何理解程序中的stream

这个问题可以换个角度回答:

为什么要有流?

假设没有流, 所有的数据都可以用二进制串来表示, 也没什么的呀. 我们再简单点, 就认为那是string. 假设我写了一个htmlparser:

   def html_parse(html_string):
    // do magic
    return html_tree

可是我们可能是从网络获得 html_string 的, 大家都知道网络相比于CPU的速度那就相当慢了, 我们希望能够边获得数据, 边解析数据, 充分利用CPU, 那么我们可能会这样写

parser = Parser()
while not is_net_done():
    bytes = read_little_from_net()
    parser.parse_little(bytes)
print parser.tree

也就是, 我们会从网络里面读一点, 解析一点.

类似的需求很常见, 比如播放视频的时候, 我们肯定是希望从硬盘(或者网络)读取一点, 播放一点, 一个视频4GB, 要是全部载入内存才能播放, 好多人都看不成1080p的了.

所以, 我们有充分的理由把这种读一点处理一点(以及相反的生成一点, 写入一点)的数据类型(或操作)抽象出来, 这就是.

你只要记住: 流就是读一点数据, 处理一点点数据. 就可以了.







发表于: 1年前   最后更新时间: 1年前   游览量:522
上一条: Scala => Unit 与 () =>Unit的区别
下一条: 函数式编程的优点
评论…

  • 评论…
    • in this conversation
      提问