HTTP概念进阶

一、什么是回调

回调是异步编程时的基础,将后续逻辑封装在回调函数中作为起始函数的参数,逐层嵌套,通过这种方式让程序按照我们所期望的方式执行。
function say(something){  //定义回调函数
console.log(something);
}
function me(callback,something){ //做为参数传递
something += ' is cool';
callback(something);
}
me(say,'Ray');
me(function(something){ //使用匿名函数
console.log(something);
},'ms');

二、什么是同步/异步

同步指的是:发送方发出数据后,等待接收方发回响应才能发送下一个数据包的通讯方式。程序的执行顺序与任务的排列顺序是一致的。
var c = 0;
function printS(){
console.log(c);
}
function plus(){
c += 1;
}
plus();
printS(); //1 结果为1  程序按照顺序执行
异步是指:发送方发出数据后,不等待对方发回响应,接着发送下一个数据包的通讯方式。程序的执行顺序与任务的排列顺序不是一致的,是异步的,在JS中两个异步函数setTimeout()setInterval()
var c = 0;
function printS(){
console.log(c);
}
function plus(){
setTimeout(function(){
c += 1;
},1000);
}
plus();
printS(); //0 结果为0 程序为异步执行

三、什么是单线程和多线程

一次只能执行一个程序叫做单线程
一次能执行多个程序叫做多线程

四、什么是IO

磁盘的写入、磁盘的读取就是数据的进和出,就是IO。

五、什么是阻塞/非阻塞

阻塞:前一个进程没有执行完就一直占用着CPU的资源,其他进程一直处于等待的过程。
非阻塞:前一个进程没有执行完时可以挂起,继续执行其他进程,等到使用时再执行。

六、什么是事件

事件就是一个触发动作,比如点击按钮

七、什么是事件驱动

事件驱动就是一个触发动作引起的操作

八、什么是基于事件驱动的回调

为了某个事件注册了回调函数,但是这个回调函数不是马上执行,只有当事件发生的时候,才会调用回调函数,这种函数执行的方式叫做事件驱动,这种注册回调就是基于事件驱动的回调。

九、什么是事件循环

管理大量异步操作的机制叫做事件循环。Event Loop是回调函数队列,异步执行的函数会被压入这个队列,队列会被循环查询。

对于nodejs来说靠一个单线程不断的查询队列中是否有事件,当他读取到一个事件的时候,将调用与这个事件相关的JavaScript函数,那么事件的循环是一个先进先出的任务队列,那么回调就按照他们被加入队列的顺序来执行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HTML概念进阶 什么是回调? 知乎:你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过...
    coderLfy阅读 1,365评论 0 0
  • 从哪说起呢? 单纯讲多线程编程真的不知道从哪下嘴。。 不如我直接引用一个最简单的问题,以这个作为切入点好了 在ma...
    Mr_Baymax阅读 7,787评论 1 17
  • 一、多线程 说明下线程的状态 java中的线程一共有 5 种状态。 NEW:这种情况指的是,通过 New 关键字创...
    Java旅行者阅读 10,180评论 0 44
  • 转自: //www.greatytc.com/p/486b0965c296 http://www.jia...
    demop阅读 9,406评论 1 21
  • 我曾经认为我是一个挺有上进心的人。我每次的做事模式都是失败之后会立一个很大的志向,觉得自己日后一定会非常非常努力,...
    狩猎书生阅读 3,493评论 1 3