首页 > 代码库 > nodejs所用的概念(同步,异步,事件驱动,事件循环等)通俗解释
nodejs所用的概念(同步,异步,事件驱动,事件循环等)通俗解释
1.回调:异步编程基本方法之一,当需要执行异步程序时候 ,一般采用后续传递,后续函数写入参数,逐层嵌套,使程序按期望方式走完流程
2.异步: 每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的。
js实现异步的方法:回调函数、事件监听、发布/订阅、Promises对象 ,有兴趣可以去阮一峰http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html一看。
同步: 后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的。
3.I.O:磁盘文件系统或者数据库的写入和读出。
4.单线程: 所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。比如js的执行。
多线程:多线程指一次可以执行多个任务,js的异步,非阻塞就是基于浏览器的多线程。
5.事件: 事件是可以被 JavaScript 侦测到的行为。
6.事件驱动:只有当事件发生时候才会调用回调函数,这种函数执行的方式叫做事件驱动。
7.基于事件驱动的回调:通过这种方式实现的回调叫做基于事件驱动的回调。如果和io有关就可以叫做基于异步回调的io。
8.事件循环:Event loop有大量的异步操作完成时需要调用相应回调函数,需要一种机制来管理执行先后,这种机制就叫做事件循环。为一个回调函数队列,node.js不断查询队列中是否有事件,查询到事件,调用相应javascript函数,机制为先进先出任务队列。
总结:node.js为非阻塞 单线程 事件驱动,都是构建在HTTP协议之上的Web应用。适合高并发,IO密集操作。
nodejs所用的概念(同步,异步,事件驱动,事件循环等)通俗解释