前端学习(六)回调,异步,非阻塞,事件驱动等知识

  • Post author:
  • Post category:其他


什么是回调?

异步编程最基本的方法。顺序执行异步逻辑,后续传递的方式,即将后续逻辑作为函数,封装在起始函数的参数中。

什么是同步/异步?

JS(浏览器单线程):

同步就是,后一个任务等待前一个任务执行完后再执行,程序的执行顺序和任务的排列顺序是一致的。

异步:每个任务都有一个或多个回调函数,执行任务后,执行回调函数,顺序不一致。(setTimeOut)


同步

,就是在发出一个

调用

时,在没有得到结果之前,该

调用

就不返回。但是一旦调用返回,就得到返回值了。


异步

则是相反,

调用

在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在

调用

发出后,

被调用者

通过状态、通知来通知调用者,或通过回调函数处理这个调用

什么是I/O?

硬盘的写入写出,数据的进出,

什么是单/多线程?

线程是最基本的运行单位,多线程即,多个线程同时运行,争夺cpu资源轮流运行。

什么是阻塞/非阻塞?

阻塞/非阻塞是对于线程来说,阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态.


阻塞调用

是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。


非阻塞调用

指在不能立刻得到结果之前,该调用不会阻塞当前线程。

总结:Node.js通过回调函数实现异步,通过异步实现非阻塞,即非阻塞单线程

什么是事件?

EventEmitter,

什么是事件驱动?

为某个事件注册回调函数,事件发生时调用回调函数,如果回调函数与异步IO有关,可以说是基于回调的异步IO。

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

什么是事件循环?

大量异步,IO,计时器,EventLoop回调函数队列,不停循环队列执行回调函数。

HTTP模块:

只处理流相关操作和信息解析(请求头和请求体)



版权声明:本文为y1yo2原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。