对nodejs不阻塞的理解

在传统的服务器程序中,如果不是用多线程,只使用单线程的情况下,当有两个用户请求服务器时,会先处理一个请求,当这个请求处理完成之后,才回去处理另外一个请求,当在请求过程中有数据库操作,文件操作等的时候,这个请求就处于挂起状态,而程序转而去执行数据库和文件操作,在这过程中另一个请求时不能够立即处理的。

在nodejs中当一个请求在处理数据库等耗时操作的时候,另一个请求也会处理,在处理这个请求的过程中要是前一个程序数据库操作完成,调用回调函数处理第一个请求,暂时中断第二个请求,当第一个执行完成之后,第二个在执行。

可以看得出,在这种模式下,服务器程序是容许多个请求操作的,省去了请求的操作数据库等而挂起消耗的时间,当请求很多的时候这种优势是显而易见的。

原文地址:https://www.cnblogs.com/zwqsgff/p/2995166.html