流的理解 3

参考: http://taobaofed.org/blog/2017/08/31/nodejs-stream/

流就是数据数据的抽像类, 按照面向对象的思想,它就是多态

下面不讨论多态的事了,贴几张图(来自淘宝前端团队的)

注:图中的writeOrBuffer----->队列池,    实际上就是 corked + highWaterMark

流的一切东西,完全可以从现实中找到答案。比较贴切的就是蓄水池.

蓄水池肯定有大小的吧,流也是有大小的.流的大小通过highWaterMark来控制

蓄水池肯定有闸门的吧,而且有两道.分别是进水口和出水口. 流也有两个闸门, 进入的闸门cork/uncork,出去的闸门 pause/resume.

蓄水池修好了

怎么用蓄水池里的水呢?

      蓄水池用处多,总体上分为两大类按需取水,管道取水

      按需取水的,比如农田,需要多少水,直接从蓄水池取水,可能得取一次或多次.有水时会通知农民的.

      管道取水的,工厂按需取水就麻烦了,因此高级点的取水方式,来水了,工厂就正常生产,没水了. 就停工.无需多操心.工厂生产结束了,管道也就无用了。

      当然 农田也可以用管道取水,工厂也可以按需取水的.

怎么往蓄水池里蓄水呢?

      蓄水没有什么途径,只能不断的往里面注,当然没有需求可以不注,需求来了继续注

当然还有其它的问题.

总之流的一切问题都可以现实生活中的蓄水池来解释.注意不能浪费水哟~~~

原文地址:https://www.cnblogs.com/honghong87/p/9764703.html