laihuamin / learn-record

这里是笔者补充学习笔记的地方,以前看书记录的很少,经常忘记,所以将看过的重点记下来

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

《深入浅出的nodeJS》第一章

laihuamin opened this issue · comments

chrome和Node的构成

chrome.png
node.png

ajax调用过程和I/O调用过程

ajax调用过程.png
Node异步调用.png

事件和回调函数

事件编程方式的优点:轻量级、松耦合、只关注事务。缺点就是我们需要处理事件和事件之间的各自独立和事件之间的协作。
回调函数是node必不可少的,可以将函数作为对象传递给方法的实参进行调用

单线程

单线程的优点:
1、不需要处处在意多线程之间的状态问题
2、没有死锁的存在
3、没有线程之间上下文交换带来的性能开销

单线程的缺点:
1、无法使用多核CPU
2、错误会引发整个应用退出,对于应用的健壮性是一个很大的考验
3、大量计算会卡死进程

子进程

子进程的调用过程:主进程将大量计算过程分发到子进程,子进程进行相应的计算,计算完成之后,通过事件的形式通知主进程。

I/O密集型和CPU密集型

对于I/O密集型的业务是node的优势,node可以利用自己事件循环的优势
对于CPU密集型的,node可以通过编写c/c++的方式来实现,也可以调用子进程来调离计算,运用进程之间的消息传递来充分利用CPU

利用node优势

1、前后端编程语言的统一性
2、高性能I/O的实时运用
3、并行I/O充分利用分布式环境
4、并行I/O有利于接口的稳定,提升web渲染能力
5、云计算平台提供了node的支持