11109710
读完那本入门的nodejs书,也把例子写了一下,之前javascript只会一点点。不过会python,对于函数回调这些虽不能说完全理解,但是也明白意思。写完那些例子之后,有一下几点感觉:
用nodejs写web应用,要自己考虑不同url请求之间的阻塞和非阻塞问题。因为用nodejs写完一个应用,就相当于也写完了一个web服务器。
总感觉,代码可读性不时那么好,尤其可能在回调函数这些比较复杂的情况下。而且感觉写同样的 一个应用,写的代码量还是比较多的(相对于python而言)。
对于它为什么能够处理高并发不是很明白,首先,我听到别人说的原因是它是单线程的,减少了上下文,切换时间,同时减少了内存的使用。表面看上去这个说法挺有道理,但是仔细一样,感觉不太对。既然单线程可以胜任,web服务器的功能,那么之前的web服务器怎么没有设计成单线程呢?至少解释不够透彻。其次,在看那本入门的书的时候,说道非阻塞的问题。说是使用轮询,这里指的轮询是在线程上的轮询吗?后来看到说道IO操作其实也是使用了多线程。具体也没怎么看明白。反正,感觉疑惑挺多的。