码迷,mamicode.com
首页 > Web开发 > 详细

nodejs认知

时间:2017-02-25 13:54:51      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:事件   处理机   工具   处理   代码   发送   通过   安全性   并且   

nodejs神奇独特之处,在于其内部的事件处理机制。

  第一、它是“单线程”的。也就是说所有用户发送请求,同时只能处理一个请求,但是,从宏观的角度说,它是一个线程同时处理多个数据(下文会说)。

       单线程也有其弊端,就是若一个用户把线程搞崩溃了,那么其余的所有用户都无法运作。

  第二、它是“非阻塞I/O”。什么是非阻塞呢?阻塞指一个线程里的用户发出了I/O请求(向数据库发送请求),该线程后的其余用户必须要等第一个用户的事件处理完毕后,

     才能让下一个用户进来处理,这就造成了单个线程的阻塞。而nodejs的非阻塞就是一个用户发出请求,简单了解事件后就放入回调函数中,拉出下一个用户事件继续

     了解,如果发现这个事件有I/O请求,则把它“放到一边”,继续对下个用户进行处理(下个用户还有I/O请求,继续放一边,处理下一个..)。

  第三、就是“事件驱动”。“放到一边”就是通过事件驱动把这个事件放入原本的事件栈中,再次进行循环执行,组成一个事件环。所以虽然是或nodejs是一个单线程的服务,

     但是却可以“同时”处理多个用户事件,将CPU的利用率完美的充分利用。

  并且nodejs的源代码中大部分都写的是事件调用和回调函数,所以它非常适合用在需要事件调度的栏目类型中(比如:聊天软件,评论板块),同样它的缺点就是,对于处

  理数据计算类型的不适用,安全性也不高,是不会有公司将其用在银行业务,证券公司的。nodejs相对于Apache、PHP、JSP根本不能相比,它只是一个专注高性能的geek

  工具。

nodejs认知

标签:事件   处理机   工具   处理   代码   发送   通过   安全性   并且   

原文地址:http://www.cnblogs.com/cycloid/p/6441543.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!