简介
Node.js 最大的特点就是采用异步 I/O 与事件驱动的架构设计。对于高并发的解决方案,传统的架构是多线程模型,也就是为每个业务逻辑模块提供一个系统线程,通过系统线程切换来弥补同步式 I/O 调用时的时间开销。Node.js 使用的是单线程模型,对于所有 I/O 都采用异步式的请求方式,避免了频繁的上下文切换。Node.js 在执行过程中会维护一个事件队列,程序在执行时进入事件循环等待下一个事件到来,每个异步式 I/O 请求完成后会被推送到事件队列,等待程序进程进行处理。
概念
同步调用
同步调用是一种阻塞式调用,一段代码调用另一段代码时,必须等待这段代码执行结束并返回结果后,代码才能继续执行下去。
异步调用
异步调用是一种非阻塞式调用,一段异步代码还未执行完,可以继续执行下一段代码逻辑,当异步代码执行完以后,通过回调返回继续执行相应的逻辑,而不耽误其他代码的执行。
回调
回调并非是异步调用,回调是一种解决异步函数执行结果的处理方法。在异步调用时,如果我们希望将异步代码执行的结果返回并且处理时,可以通过回调的方法解决。注意,回调还是一种阻塞式调用。
补充:异步函数往往不是直接返回执行结果,而是通过事件驱动方式,将执行结果返回到回调函数中,之后在回调函数中处理相应的逻辑代码。
时间: 2024-10-12 01:58:34