我正在使用The Node Beginners book,并对节点js请求处理的“同步方式”产生了怀疑。好吧,我的意思是假设我的网站有2个页面开始和上传(根据教程),我对这2个页面进行并发请求,然后请求被串行处理(就像第一个开始将被获取,然后上传将被获取)。如果我的网站每秒收到100个请求(而我只运行一个节点进程),所有这些请求都将被串行处理。所以这对路由器来说不是很有意义吗
调用setTimeOut中的所有响应(类似于setTimeOut( requestHandlers (Response),0) )?这样,路由器的任务将仅限于调用处理程序并转移到等待的下一个请求。当然,根据页面的大小和操作的不同,加载页面需要一定的时间,但至少这些时间被用来做重要的工作,而不是仅仅等待其他页面。
另外,我知道node只运行一个进程。但是它确实运行多个线程,不是吗?
发布于 2012-07-06 10:05:02
为了回答您的最后一个问题,您用JavaScript为节点程序编写的所有代码都运行在一个线程中;异步I/O任务由libuv抽象出来。
我认为您没有以足够细粒度的方式考虑您的两个请求;您说,
将获取
首先启动,然后获取上载
但是,在现实中,web请求和响应是由各种IO任务组成的,而不仅仅是您在JavaScript程序中进行的处理。例如,当数据通过"start“处理程序的套接字传输时,数据也可以流入”上传“处理程序的程序中。
https://stackoverflow.com/questions/11354730
复制相似问题