阻塞与非阻塞IO

阻塞与非阻塞IO


Node中,你需要对回调函数如何修改当前内存中的变量(状态)特别小心。

1
2
3
4
5
6
7
var books = ["红楼梦", "三国演义"];
function serveBooks(){
//给客户端返回的HTML代码
var html = '<b>' + books.join('</b><br><b>')+'</b>';
books = [];
return html;
}

等价的PHP代码

1
2
3
4
5
6
$books = array('harry', 'dollars');
function serveBooks(){
$html = '<b>'.join($books, '</b><br><b>').'</b>';
$books = array();
return $html;
}
APACHE

PHP PHP
THREAD THREAD

REQUEST REQUEST

NODE.JS
THREAD

REQUEST REQUEST REQUEST

node.js只有借助child_process 才能生成新的process

采用事件轮询意味 甚么 呢?
Node会先注册事件, 随后,不停的询问内核,这些事情是否已经分发