博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NodeJS 介绍
阅读量:6238 次
发布时间:2019-06-22

本文共 909 字,大约阅读时间需要 3 分钟。

hot3.png

1、由来

Ryan Dahl 最初的目标是写一个基于事件驱动、非阻塞IO的Web服务器,已达到更高的Web服务器性能。其实事件驱动和非阻塞IO是Web服务器性能提升的两个重要因素。

2、偶遇JavaScript

之所以选择JavaScript,是因为JavaScript

1)符合事件驱动

2)非阻塞IO还没有实现

3)V8引擎性能显著

4)JavaScript语言容易使用

3、为何叫Node

为什么叫Node,开始之初是一个Web服务器,后面变成了构建网络应用的一个基础框架,这样就可以在他的基础之上构建更多的东西,这些构建的节点就是所谓的Node,这些节点又是使用Node开发,通过通信协议连接在一起形成的可伸缩的网络应用系统。

4、Node的特点

1)异步IO

2)事件与回调函数

3)单线程,原因是因为JavaScript是单线程的,而且在Node,JavaScript与其他线程是无法共享状态的,单线程也有好处,不用担心数据共享造成的问题,不用担心死锁;同时,单线程也会带来问题,

    A:无法利用多核CPU

    B:错误会引起整个应用退出,应用的健壮性值得考虑

    C:大量计算占用CPU导致无法继续调用异步的IO,这说明大计算处理不适合使用单线程

单线程的问题,首先这个问题是JavaScript自带的,那么JavaScript肯定也想出了解决的办法,那就是HTML5定制了 Web Work的标准,Web Work 能创建工作线程来进行计算,以解决JavaScript的大计算阻塞UI渲染的问题,工作线程为了不阻塞主线程,通过消息传递的方式来传递运行结果,这也使得工作线程不能访问到主线程的UI。Node采用了Web Work的思路,child_process ,子进程的出现,通过将计算分发到各个子进程,然后通过子进程之间的事件消息来传递结果。

4)跨平台,Node基于libuv实现跨平台,其实和Java虚拟机也没什么差异之处。

5、Node应用场景

1)IO密集型

2)作为中间传递应用程序,发挥其起步并行的优势

转载于:https://my.oschina.net/heweipo/blog/626737

你可能感兴趣的文章
kali 安装完成后,无法进入界面
查看>>
TortoiseSvn问题汇总(持续更新)
查看>>
html5中的锚点特效
查看>>
我的友情链接
查看>>
超时机制的简单实现
查看>>
maillog中不记录收发的邮件
查看>>
CentOS 开机自动联网
查看>>
windows:查看进程路径及PID,并杀掉进程
查看>>
JSP语法之八大隐式对象
查看>>
我的友情链接
查看>>
jumpserver的部署
查看>>
Python读写配置文件的实际操作步骤解析
查看>>
112 - Tree Summing
查看>>
sicily 1151. 魔板[Special judge]
查看>>
LNMP——搭建
查看>>
matlab-基础 class 获取变量的类型
查看>>
去IBM面试后的感受
查看>>
Linux基础入门及系统管理01-Linux用户管理命令详解11
查看>>
TurboMail邮件服务器飞邮手机邮箱全新更新抢先睇
查看>>
《Java虚拟机原理图解》3、JVM运行时数据区
查看>>