node.js是什么
node.js是一个javascript运行平台,显著的特征是异步和事件驱动,node和javascript的优势之一就是单线程(多线程容易引入一些bug),所以代码是一条条执行的,不是并行执行的.但是这样是不合理和低效的,于是引入了事件驱动机制.
非阻塞I/O
意思就是,你的程序可以在做其他事件的时候,同时做一个非阻塞I/O的操作(例如发送请求),并不会阻塞原来的代码运行,等非阻塞I/O的那个操作完成后,就会运行一个回调函数来处理拿到的结果,我们平时写的js里面的发送ajax请求就是这样.放在node服务端可能就是执行一些读取数据库,读取文件之类的耗时操作.
事件轮询(Event Loop)
因为js是单线程,所以是一行行执行代码,遇到一些耗时的异步操作,例如网络请求,就会把它交给事件轮询去另外处理,主线程继续往下执行,事件轮询当知道异步耗时操作完成后就会触发之前设置好的回调函数,提高性能.
node程序
现在js简直就是无所不能了,利用node可以写web应用程序,可以写gulp,webpack之类的命令行工具,后台程序,利用electron写桌面程序
网友评论