如何理解程序中的stream

無名 发表于: 2016-06-23   最后更新时间: 2019-02-15  

为什么要有流?

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

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

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



您需要解锁本帖隐藏内容请: 点击这里
本帖隐藏的内容




無名 发表于: 3年前   最后更新时间: 7月前   游览量:1893

上一条: 远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)
下一条: interllij idea生成javadoc