nodejs(nodejs是一个js的运行时)的组成:libuv、v8、第三方库。

 

nodejs的定位:服务器

 

这三个组成的用途:

1.libuv:

2.v8:nodejs选择了js语言,所以就需要一个js引擎,所以有了v8。

3.第三方库:第三方库的作用就是为了复用业界已有的解决方案去拓展nodejs的一些功能。

 

node的特点:

1.异步I/O

2.基于事件,回调函数操作异步

3.单线程

3.1单线程的缺点:

3.1.1无法利用多核cpu

3.1.2错误会引起整个应用退出,应用的健壮性值得考验

3.1.3大量计算占用cpu导致无法继续调用异步I/O

node采用了于Web Workers相同的思路解决单线程中大计算量的问题:child_process

子进程的出现,意味着Node可以从容地应对单线程在健壮性和无法利用多核CPU方面的问题。通过将计算分发到各个子进程,可以将大量计算分解掉,然后再通过进程之间的事件消息来传递结果,这可以很好地保持应用模型的简单和低依赖。通过Master-Worker的管理方式,也可以很好地管理各个工作进程,以达到更高的健壮性。

4.跨平台