-chapter one
第一章简要概括就是说node发展前景越来越好,有统一前后端的趋势,说白了,node最广为人知的就是异步i/o特别强,也就是有利于高并发,另外缺点就是单线程,意味着遇到大量计算量时就会有麻烦(cpu密集型),但它也有相应的解决方案(既然作为这么强大的语言,怎么被这一点小小的挫折所屈服呢- -),子进程就是一个解决方法,将计算分发到多个子进程(ps:线程与进程的联系,线程是进程的一部分, 一个没有线程的进程是可以被看作单线程的,如果一个进程内拥有多个进程,进程的执行过程不是一条线(线程)的,而是多条线(线程)共同完成的。)单线程解决高并发的思路就是采用非阻塞,异步编程的思想。简单概括就是当遇到非常耗时的IO操作时,采用非阻塞的方式,继续执行后面的代码,并且进入事件循环,当IO操作完成时,程序会被通知IO操作已经完成。主要运用JavaScript的回调函数来实现。多线程虽然也能解决高并发,但是是以建立多个线程来实现,其缺点是当遇到耗时的IO操作时,当前线程会被阻塞,并且把cpu的控制权交给其他线程,这样带来的问题就是要非常频繁的进行线程的上下文切换。
node的另外的特点就是跨平台,因为微软开发个叫做libuv的平台(也由于这个平台c++模块也可以实现跨平台,嗯,我很欣赏它),node在cpu密集型运算也占有一席之地,把java都甩在了后面,(ps:本人是比较喜欢c++的otz)