node.js是什么

浏览器是接收请求和发送请求,服务器接收请求。v8是解析浏览器的js 引擎。

node。js是一个让JavaScript运行在服务器端的开发平台,它让JavaScript的触角伸到了服务器端,可以与PHP,jsp,python ,buby 平起平坐,但node。js似乎有点不同:

1.1  node的特点

node.js不是一种独立的语言,与PHP(是一种通用开源脚本语言,主要适用于Web开发领域,在网页程式的开发上。一般来说PHP大多执行在网页服务器上),jsp(JSP全名为Java Server Pages,叫java服务器页面,JSP它是在传统的网页HTML,中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)),python,Ruby的即是语言也是平台不同,node.js的使用javasctipt进行编程,运行在JavaScript引擎上(V8),不像其他语言,要运行在服务器端(apache,Naginx,iis tomcat)等其他http服务器上。它不用建设在任何服务器软件之上。Node.js的设计理念与经典的架构(LAMP(LAMP=Linux + Apache+ Mysql+php))有着很大的不同,可以提供强大的伸缩能力。

官网:https://nodejs/org/en

1.2  node的特点

node.js是如何解决服务器高性能瓶颈问题的:单线程;非阻塞i/o;事件驱动;

1.单线程

在java,PHP等服务器端语言中,会为每个客户端连接创建一个新的线程。而每个线程需要消耗大约2mb 的内存,南无一个8GB的服务器可以同时连接4000个左右的用户,要增加用户量,就要增加服务器的数量,。node.js不是为每个用户连接创建一个新的线程,而仅仅使用一个线程。当有用户连接了,就触发一个内部事件,通过非阻塞I/O,事件驱动机制,让node.js程序宏观上也是时并行的,使用NOde。js 一个8GB的内存服务器,可以同时处理超过4个用户的连接。另外一个线程带来的好 处就是,操作系统完全不在有线程的创建。销毁的时间内的开销。

单线程cpu的利用率永远是百分之百,

坏处是:一个用户造成了线程的崩溃,整个服务都崩溃了,其他人也就崩溃了。

2.非阻塞i/o

当在访问数据库取得数据的时候,需要一段时间:在传统的单线程处理机制中,在执行了访问数据库代码之后,整个线程都将暂停下来,等待数据库返回结果,才行执行后面的代码。

由于node.js 中采用了非阻塞型I/o机制,因此在执行访问数据库的代码之后,将执行后面的代码,把数据库返回结果的代码放在回调函数中,从而提高了程序的执行效率。当某个i/o执行完毕时,将以事件的形式通知执行I/o操作的线程,线程执行这个事件的回调函数。为了处理异步I/o,线程必须有事件循环,不断的检查有没有未处理的事件,依次处理。

用一个线程复旦起了非常多的任务。

但单线程的好处:减少了内存开销,操作系统的内存换页,若果某一个事情进入了,但是被i/o阻塞了,非阻塞i/o

这3个特点是一个特点 ,离开谁都不行,都玩不起

node,js 所有i/o都是异步的,回调套回调

百度贴吧是pyhton写的

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值