如何理解程序中的stream

無名 发表于: 2016-06-23   最后更新时间: 2023-05-23 13:22:01  
{{totalSubscript}} 订阅, 4,156 游览

为什么要有流?

假设没有流, 所有的数据都可以用二进制串来表示, 也没什么的呀. 我们再简单点, 就认为那是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的了。

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

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

更新于 2023-05-23

查看shares更多相关的文章或提一个关于shares的问题,也可以与我们一起分享文章