- Node.js is a JavaScript runtime built on Chrome's V8
- Node.js uses an event-driven,non-blocking I/O model(事件驱动和IO模型)
非阻塞I/O (Input / Ouput)
- 阻塞I/O:I/O 时进程休眠等待I/O完成后进行下一步
- 非阻塞I/O:I/O时函数立即返回,进程不必等待I/O完成
疑问:所有的指令都可以理解为阻塞的,上一条执行完才能执行下一句,为什么单单把IO拿出来说?
简单来讲,指令依赖的都是CPU运算,CPU的运行速度时很快的,可以执行31条指令,非IO操作根本感觉不到阻塞的过程(拷贝电影的速度)
IO结束后通知主程序------->事件驱动
事件驱动
- I/O等异步操作结束后通知主进程
- 观察者模式