node.js入门 - 6.I/O模式
我们按照执行的方式,把I/O分为串行I/O和并行I/O。串行I/O是完成当前I/O之后,才会去执行下一个I/O。并行I/O要复杂些,但是更容易理解,就是几个I/O同时运行。有一点需要提醒的是,在串行I/O中一般是按照请求队列的顺序来执行请求的,并以这个顺序返回结果。并行I/O返回的结果没有任何的顺序可言。串行I/O和并行I/O可以组合起来工作,例如:有多组并行I/O,每组中包含不同数目的串行I/O。
在Node中我们假设所有的I/O无限延迟的,他们可能执行0到无限的时间,我们不知道也不能假设他们具体的执行时长。与其等待他们执行完毕,我们不如使用基于事件模式,当I/O执行完毕时使用回调函数来响应结果。因此,使用并行I/O是更理想的解决方案,我们可以执行多个请求,按照他们执行完毕的顺序返回结果。
所以我们现在有两种方式去处理I/O:顺序串行处理和非顺序的并行处理。顺序的并行处理也是一种有用的模式,当我们允许I/O并行运行,并使用原有顺序返回结果时可以使用这种方式。非顺序的串行没有益处,我们就不讨论了。
note:
感觉这部分内容似曾相识,以前学习操作系统的运行方式,还有学习多线程编程的时候,也有类似的概念或者实现方式。大家对那些知识比较熟悉的话,理解这块知识肯定会容易的多。