Node特点异步IO事件和回调函数单线程跨平台单线程优点:单线程最大的优点就是不用像多线程那样关心状态同步问题线程编程。不存在死锁。线程上下文切换带来的性能开销单线程的缺点:无法使用多核CPU错误会导致整个应用退出,应用的健壮性值得检验大量计算占用CPU,无法继续调用异步I/ONodes和WebWorkers一样的思路,解决单线程计算量大的问题:child_process。子进程的出现,意味着Node可以从容应对单线程健壮性和无法利用多核CPU的问题。通过将计算分布到子流程,可以分解大量的计算,然后通过事件消息在流程之间传递结果,可以保持应用模型的简单性和低依赖性。通过Master-Worker的管理方式,也可以很好的管理各个工作进程,达到更高的健壮性。Node应用场景IO密集型Node面向网络,擅长并行I/O,可以有效组织更多的硬件资源,提供更好的服务。I/O-intensive的优点是Node利用了事件循环的处理能力,而不是每个请求都启动一个线程来服务,占用的资源非常少。CPU密集型解决方案Node的异步I/O解决了CPU和I/O之间的阻塞不能在单个线程上重叠利用的问题。虽然Node不提供多线程计算支持,但还是有两种方式可以充分利用CPU。1.Node可以通过编写C/C++扩展来更高效地使用CPU。2.如果单线程的Node不能满足要求,即使使用C/C++扩展也不够用,那么通过子进程的方式,将部分Node进程作为常驻服务进程进行计算,然后使用进程间消息传递结果,将计算与I/O分离,充分利用多CPU。分布式应用高效利用并行IO
