在学习 node.js 的过程里,为了真正地学会去运用这个强大而有趣语言,发现了几篇好文章,这里是其中一篇的阅读笔记与翻译
1. I/O 是很占用时间的,包括了一级二级缓存,RAM,Disk,和网络延迟。资源最大的损耗在于 I/O 的等待时间。面对这个问题有 3 个解决办法:
1.1 同步(synchronous) :任意请求能被同时运作
1.2 fork a new process:缺点:占用存储空间过多
1.3 线程:
Node.js 为非多线程的,因为多线程带来了严重的 memory 损耗。它是基于事件的。
2. 不能平行进行代码的处理,代码正在运行时,Node.js 并不能响应其它请求,尽管当前只有一个进程正在被运行;就像说,有耗费 cpu 的任务,像图片的重置。就会阻塞其它请求了;
3. 在一个请求之下,不可能让代码实现平行操作。然而,所有 I/O 是被事件化与异步化的
4. 在 node.js 不必担心后台所发生的事:就只是当发生 I/O 操作时,用好 callbacks 就ok了。你会喜闻乐见地看到,我们的代码永远不会冲突;并且 I/O 事件时不会阻塞其它每次请求都耗占资源的请求。异步 I/O 很好,最讨厌莫过于等待 I/O 了;
所以稍后当数据可以切实被使用的时候,才会 callback 回调
当让在后台, threads and processes for DB access and process execution 还是有的。然而这不会真切地在代码里显现。
...............................
.................
......
原文来源于:http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/