网络IO模型与node 不得不说的故事 (1) 阻塞IO
我现在看http相关的知识,看着看着不知道怎么就想起来node了,也不知道怎么就想起node的介绍:
Node.js 在其标准库中提供了一组异步的 I/O 原生功能(用以防止 JavaScript 代码被阻塞),并且 Node.js 中的库通常是使用非阻塞的范式编写的(从而使阻塞行为成为例外而不是规范)。
然后在思考什么是异步I/O 的时候,懵逼了.也是使用过node进行开发的人,竟然简介的第一句话都弄不清楚,我觉得是一种耻辱;
为了洗清我的耻辱,我就学习了一下何为网络io模型,一下是我用自己的语言解释.欢迎讨论,听说点个赞,一辈子都不会有绿帽子!
1: 阻塞IO;
很简单,就是进程在进行I/O操作的时候,该进程不能进行其他操作;
简单模仿读取某个文件的过程
1: 进程要读取某个文件,
2: 内核从磁盘中copy数据到内核缓存,完成该文件的全部读取
3: 从内核缓存中导入到进程的缓存空间
4: 接受完毕,线程开始其他操作;
在第2步的时候,需要把该文件的所有的内容都copy完之后,才能执行第3步.
在第4步未完成时,该进程不能进行其他IO操作;