一些基本概念

来源:互联网 发布:画婚车路线图的软件 编辑:程序博客网 时间:2024/05/17 22:05

同步:任务的执行顺序与任务的排列顺序一致,后一个任务要等待前一个任务执行完才能执行

异步:任务的执行顺序与排列顺序无关,前一个任务执行完了会执行回调函数,后一个任务不必等待前一个任务执行完毕

例子:

打电话预定座位,老板说帮忙查查看,(1分钟后。。。)得知结果----同步

打电话预定座位,老板说查好给回电话,(1分钟后。。)接到老板的电话,得知结果---异步


单线程:一次只能有一个女朋友

多线程:”脚踏几只船“,需要注意资源分配


阻塞I/O:同第一个例子,在等待结果的时候把自己挂起,直到等到结果

非阻塞I/O:挂了电话之后该干嘛干嘛,可适时问老板有没有搞定这个问题


对单线程的node.js来说,可通过回调进行异步编程,达到非阻塞的效果


事件:浏览器点击是事件,拖拽是事件。。。。(以后在EventEmitter中再详细讲)


事件循环:若有大量的异步操作,完成的时候要调用大量的回调函数,从而来完成一些密集的任务,而又不会阻塞整个程序执行的流程。此时这么多事件就需要有一个机制来管理,这种机制就叫做事件循环。

eventloop是一个回调函数队列,当异步函数执行时,回调函数会被压入队列,node.js靠单线程不断查询队列中是否有事件,有的话调用代码执行。

是一个先进先出队列,整个队列可被理解为是普通函数和回调函数构成的一个完整的队列。

原创粉丝点击