分享更有价值
被信任是一种快乐

nodejs指的是js么

文章页正文上

这篇文章主要介绍了nodejs指的是js么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 nodejs不是js,而是一个让js运行在服务端的平台。js(全称JavaScript)是一种编程语言,而Node是一个基于Chrome V8引擎的JavaScript运行环境,一种让JavaScript运行在服务端的开发平台。本教程操作环境:windows7系统、nodejs 12.19.0版,DELL G3电脑。nodejs不是js,而是一个让js运行在服务端的平台。Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型, 让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。JavaScript基于Node.js技术可以进行服务器端编程。Node.js的特点非阻塞异步io例如,当在访问数据库取得数据的时候,需要一段时间。在传统的单线程处理机制中,在执行了访问数据库代码之后,整个线程都将暂停下来,等待数据库返回结果,才能执行后面的代码。也就是说,I/O阻塞了代码的执行,极大地降低了程序的执行效率。由于 Node.js 中采用了非阻塞型I/O机制,因此在执行了访问数据库的代码之后,将立即转而执行其后面的代码,把数据库返回结果的处理代码放在回调函数中,从而提高了程序的执行效率。当某个I/O执行完毕时,将以事件的形式通知执行I/O操作的线程,线程执行这个事件的回调函数。为了处理异步I/O,线程必须有事件循环,不断的检查有没有未处理的事件,依次予以处理。阻塞模式下,一个线程只能处理一项任务,要想提高吞吐量必须通过多线程。而非阻塞模式下,一个线程永远在执行计算操作,这个线程的CPU核心利用率永远是100%。所以,这是一种特别有哲理的解决方案:与其人多,但是好多人闲着;还不如一个人玩命,往死里干活儿。单线程在 Java、PHP 或者 .net 等服务器端语言中,会为每一个客户端连接创建一个新的线程。而每个线程需要耗费大约2MB内存。也就是说,理论上,一个8GB内存的服务器可以同时连接的最大用户数为4000个左右。要让Web应用程序支持更多的用户,就需要增加服务器的数量,而 Web 应用程序的硬件成本当然就上升了。Node.js不为每个客户连接创建一个新的线程,而仅仅使用一个线程。当有用户连接了,就触发一个内部事件,通过非阻塞I/O、事件驱动机制,让 Node.js 程序宏观上也是并行的。使用 Node.js ,一个8GB内存的服务器,可以同时处理超过4万用户的连接。另外,单线程带来的好处,操作系统完全不再有线程创建、销毁的时间开销。但是单线程也有很多弊端,会在 Node.js 的弊端详细讲解,请继续看。事件驱动在 Node 中,客户端请求建立连接,提交数据等行为,会触发相应的事件。在 Node 中,在一个时刻,只能执行一个事件回调函数,但是在执行一个事件回调函数的中途,又有其他事件产生,可以转而处理其他事件(比如,又有新用户连接了),然后返回继续执行原事件的回调函数,这种处理机制,称为“事件环”机制。Node.js 底层是 C++(V8也是C++写的)。底层代码中,近半数都用于事件队列、回调函数队列的构建。用事件驱动来完成服务器的任务调度,这是鬼才才能想到的。针尖上的舞蹈,用一个线程免费云主机、域名,担负起了处理非常多的任务的使命。注意这里的事件循环,也可以说是 Node.js 的一个精髓所在,下面引用一段 Node.js 官网的内容引用Node官网中的一段内容:注意:每个框将被称为事件循环的“阶段”。
每个阶段都有一个要执行的回调FIFO队列。虽然每个阶段都以其自己的方式特殊,但通常情况下,当事件循环进入给定阶段时,它将执行特定于该阶段的任何操作,然后在该阶段的队列中执行回调,直到队列耗尽或最大回调数量为止已执行。当队列耗尽或达到回调限制时,事件循环将移至下一阶段,依此类推。
关于事件循环是一个核心点,经常会被面试官考具体执行输出的问题,大家可以看我的这篇文章跨平台起初,Node 只能在 Linux 平台上运行。后来随着Node的发展,微软注意到了它的存在,并投入了一个团队帮助 Node 实现 Windows 平台的兼容,在v0.6.0版本发布时,Node 已经能够直接在 Window 平台运行了。 Node 是基于libuv实现跨平台的。Node.js的弊端单线程带来的弊端Node.js中有一个特点就是单线程,它带来了很多好处,但是它也有弊端,单线程弱点如下。无法利用多核CPU错误会引起整个应用退出无法继续调用异步I/O大量计算占用CPU导致无法继续调用异步I/ONode.js的应用场景介绍了Node.js的特点和弊端,再说一下Node.js的应用场景。Node.js适合用来开发什么样的应用程序呢?善于I/O,不善于计算。因为Node.js最擅长的就是任务调度,如果你的业务有很多的 CPU 计算,实际上也相当于这个计算阻塞了这个单线程,就不太适合Node开发,但是也不是没有解决方案,只是说不太适合。当应用程序需要处理大量并发的I/O,而在向客户端发出响应之前,应用程序内部并不需要进行非常复杂的处理的时候,Node.js非常适合。Node.js也非常适合与web socket配合,开发长连接的实时交互应用程序。具体场景可以表现为如下:第一大类:用户表单收集系统、后台管理系统、实时交互系统、考试系统、联网软件、高并发量的web应用程序;第二大类:基于web、canvas等多人联网游戏;第三大类:基于web的多人实时聊天客户端、聊天室、图文直播;第四大类:单页面浏览器应用程序;第五大类:操作数据库、为前端和移动端提供基于json的API;第六大类,…感谢你能够认真阅读完这篇文章,希望小编分享的“nodejs指的是js么”这篇文章对大家有帮助,同时也希望大家多多支持云技术,关注云技术行业资讯频道,更多相关知识等着你来学习!

相关推荐: 有哪些CSS reset重设方法

本篇内容主要讲解“有哪些CSS reset重设方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些CSS reset重设方法”吧!一.最简化的CSS Reset(重设) :CSS Code复制内容到剪贴板*{ …

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册