nodeJS的特点
- 非阻塞I/O
- I/O(Input/Output)也就是输入输出
- 在单线程中,当一段代码运行需要很长时间的时候,后面的代码就会处于等待状态,在浏览器端,也就是常常表现的浏览器假死,比如一个没有终止的递归或者一个没有结束的for循环,而在nodeJS中,采用了非阻塞的I/O机制,就是说当一个请求所返回的数据需要很长时间,那么会把这段请求代码放在回调函数中,当主线程代码执行完毕后再去读取请求的数据,不停的轮询(Event Loop),直到数据正常返回,再去处理数据,从而提升了执行效率
- 事件驱动
- 事件驱动编程主要思想是通过事件或状态的变化来进行应用程序的流程控制,一般通过事件监听完成,一旦事件被检测到,则调用相应的回调函数,简单来说就是当异步任务执行的时候,会被放置在任务队列中,主线程执行完毕后,会读取任务队列中的事件,因为任务队列中的每一个异步任务执行完毕之后都会在队列中添加一个事件,而js主线程执行完后就会执行这些事件,从而调起对应的回调函数放入主线程中进行执行
- 单线程
- 在Java或PHP中,会为每一个客户端链接创建一个线程,而每个线程需要大约2MB的内存,在一个8GB的服务器上,大约能同时为4000左右的用户服务,而nodeJS通过非阻塞I/O、事件驱动机制,可以同时处理超过4万的用户连接,缺点就是一个用户造成的线程奔溃会让整个服务器都崩溃,其他用户也会崩溃;
- 单线程在同一时刻只能执行一个任务,也就是说,执行环境相对更简单,更高效,但是在单线程中I/O设备对其来说是致命的,因为I/O是阻塞形式的,然而nodeJS中,将异步数据放在任务队列中执行,从而不阻塞主线程任务的执行,当异步任务执行完毕后,在任务队列添加事件,等待执行,从而提高了效率
- 单线程也就是同一时刻只能做同一件事情
- 跨平台
- nodeJS是服务端的,基于chrome的V8引擎,是JavaScript的运行环境,因此没有运行的限制,与浏览器没有任何关系,并不会因为IE而产生兼容问题等
简单Linux命令介绍
- nodeJS是服务端的,基于chrome的V8引擎,是JavaScript的运行环境,因此没有运行的限制,与浏览器没有任何关系,并不会因为IE而产生兼容问题等
- ls/dir
- 查看目录ls是linux命令,dir是dos命令,windows原装cmd终端系统则使用dos命令
- ls -a
- 查看隐藏目录
- mkdir
- mkdir dist 创建一个dist的文件夹
- mkdir dist1 dist2 同时创建dist1、dist2两个文件夹
- mkdir -p src/index/js 创建一个目录树
- rmdir
- 删除文件夹
- rm
- rm index.js 删除index.js文件
- rm -r dist 递归删除dist文件夹及其文件夹中的内容
- rm -f index.js 不需提示,删除文件
- rm -rf dist 递归删除不需提示,强制删除文件夹及文件夹中所有内容
- rm -rf dist1 dist2 递归删除不需提示,同时删除dist1、dist2
- clear
- 清空终端运行日志或操作记录
- mv
- mv a b 如果b文件夹存在则把a移动到b中,如果b不存在,则把a命名为b
- cp
- cp index.js main.js 拷贝index.js并命名文main.js
- cp -a dist1 dist2 复制一个目录
- touch
- Touch index.js 创建一个文件
- zip
- zip -r 打包后的文件名称 需要打包文件夹
- unzip 解压
- node运行
- 终端运行
网友评论