2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 学习Node.JS 前基础知识的了解 以及node中的单线程-非阻塞IO 知识概述

学习Node.JS 前基础知识的了解 以及node中的单线程-非阻塞IO 知识概述

时间:2020-02-18 21:12:00

相关推荐

学习Node.JS 前基础知识的了解 以及node中的单线程-非阻塞IO 知识概述

Node概述

1. node.js 是一个开发平台,就像Java开发平台、.Net开发平台、PHP开发平台、Apple开发平台一样。何为开发平台?有对应的编程语言、有语言运行时、有能实现特定功能的API (SDK: Software Development Kit)2.该平台使用的编程语言是JavaScript 语言。3. node.js 平台是基于Chrome V8 JavaScript 引擎构建。4.基于node.js 可以开发控制台程序(命令行程序、CLI程序)、桌面应用程序(GUI) (借助node-webkit、 electron等框架实现)、Web 应用程序(网站)PHP 开发技术栈: LAMP - Linux Apache MySQL PHPnode.js全栈开发技术栈: MEAN-MongoDB Express Angular Node.js

特点

1、Node是一个构建于Chrome V8引擎(只有堆和调用栈)之上的一个Javascript 运行环境Node是-个运行环境,作用是让js拥有开发服务端的功能"Chrome V8引擎(只有堆和调用栈)所以说:没有浏览器提供的一些API,例如:DOM、BOM等"2、Node使用事件驱动(当事件被触发时,执行传递过去的回调函数)、非阻塞IO模型(异步读写,当执行I/0操作时,不会阻塞线单线程)使得它非常的轻量级和高效。Node中绝大多数API都是异步(类似于ajax) ,目的是提高性能3、js为单线程(一个调用栈便是一个单线程),node提供多线程处理4、Node中的NPM是世界上最大的开源库生态系统(类似于github)5、Node本身就是个web容器(服务器),所以无需要 Apache、IIS等。

node.js 中的单线程-非阻塞IO

补充知识:代码演示,例如:console.log("1")function fun(){setTimeout(function(){console.log("2")},500)}function funny(){setTimeout(function(){console.log("3")},200)}fun()funny()console.log("4")/*结果为:1 4 3 2为什么不是1,2,3,4呢,按理说不是应该顺序执行吗?这便是node是单线程工作,非阻塞IO模型(异步读写,不会阻塞线单线程)*//*执行流程:1、首先调用栈先调用入口mian()函数,先将console.log("1")入栈,打印完毕后弹出栈中2、此时栈中剩余main()函数,再将fun()入栈,再出栈放入到node.js底层开启异步中放入队列中进行等待3、再将funny()入栈,再出栈也放入到WEB APIS中进行等待4、将console.log("4")入栈,打印完毕后弹出栈中5、此时main()函数也出栈,此时栈空6、再去callback queue中找,依次调用异步成功后的callback(),上面fun()和funny()函数因设置时间不同,所以先将funny()放入第一个callback(),后放入fun()第二个callback()*/JavaScript 是单线程工作,这意味着两段脚本不能同时运行,而是必须一个接一个地运行。我们人类是多线程工作。你可以使用多个手指打字,可以一边开车一边与人交谈。唯一会妨碍我们的是打喷嚏,因为当我们打喷嚏的时候,所有当前进行的活动都必须暂停(只是举例,不包括心跳啥的)。JavaScript由于单线程限制,防止阻塞,只能通过异步函数的调用方式,把需要延迟处理的事件放入事件循环队列。到目前为止,回调(callback)是编写和处理JavaScript程序异步逻辑的最常用方式。可以自己进行编写代码,来去参考浏览器(与node.js运行原理相同)演示动画地址:/loupe

REPL介绍

1. REPL 全称: Read- Eval-Print-Loop (交互式解释器)R读取-读取用户输入,解析输入了Javascript数据结构并存储在内存中。E执行-执行输入的数据结构P打印-输出结果L循环-循环操作以上步骤直到用户两次按下ctrl-c 按钮退出。2.在REPL中编写程序(类似于浏览器开发人员工具中的控制台功能)直接在控制台输入、node 命令进入REPL环境3.按两次Control + C退出REPL界面或者输入、.exit~ 退出REPL界面按住control 键不要放开,然后按两下c键

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。