摘要: 虽说nodejs是单线程的,但是它还是容许多线程操作,它把当前线程作为主线程,可分割出一些从线程,虽说是分割的,但是字线程和主线程具有同样的功能,可同样监听同一个端口,当主线程阻塞时,从线程可以代替他工作,从线程和主线程可以通信说明:例子实在学习过程中从原文中得来的。var cluster = require("cluster");//通过cluster可以分出一些字线程var http = require("http");var numCPUs = require("os").cpus().length;console.log(nu 阅读全文
posted @ 2013-04-02 13:45 宇宙起源 阅读(903) 评论(0) 推荐(0) 编辑
摘要: 在传统的服务器程序中,如果不是用多线程,只使用单线程的情况下,当有两个用户请求服务器时,会先处理一个请求,当这个请求处理完成之后,才回去处理另外一个请求,当在请求过程中有数据库操作,文件操作等的时候,这个请求就处于挂起状态,而程序转而去执行数据库和文件操作,在这过程中另一个请求时不能够立即处理的。在nodejs中当一个请求在处理数据库等耗时操作的时候,另一个请求也会处理,在处理这个请求的过程中要是前一个程序数据库操作完成,调用回调函数处理第一个请求,暂时中断第二个请求,当第一个执行完成之后,第二个在执行。可以看得出,在这种模式下,服务器程序是容许多个请求操作的,省去了请求的操作数据库等而挂起消 阅读全文
posted @ 2013-04-02 11:45 宇宙起源 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 在学习过程中的实例,加入自己的理解//此段程序会陷入死循环,使用while可使循环占据线程,而setTimeout的延时启动使得事件触发不了EE = require("events").EventEmitter;ee = new EE();die = false;ee.on("die", function (a, b, c) { die = true; console.log("arguments:" + a + b + c);});console.log("test");//ee.emit("die&q 阅读全文
posted @ 2013-04-02 11:36 宇宙起源 阅读(259) 评论(0) 推荐(0) 编辑