nodejs异步原理,在Node尽量使用异步函数的原因,下列说法中错误的是()

  nodejs异步原理,在Node尽量使用异步函数的原因,下列说法中错误的是()

  node.js速度课程简介:进入学习

  本教程运行环境:windows7系统,nodejs16版本16,DELL G3电脑。

  NodeJS是单线程,单线程有以下好处:

  简单的

  高性能,避免频繁的线程切换开销。

  资源占用小,因为是单线程,重负载下内存占用还是低的。

  线程安全,无锁定、解锁、死锁。

  如何解决高并发?

  采用节点异步IO和事件驱动(回调函数)解决高并发问题。

  一般来说,高并发解决方案会提供多线程模型,为每个业务逻辑提供一个线程,通过系统线程切换来弥补同步I/O调用的时间成本。和apache一样,它是一个请求,一个线程。

  NodeJS采用单线程模型,对所有I/O进行异步请求,避免频繁的上下文切换,并在NodeJS执行时维护一个事件队列。当程序执行时,它进入事件循环并等待下一个事件。每个异步I/O请求完成后,将被推送到事件队列中执行。

  NodeJS的异步机制是基于事件的。所有的I/O、网络通信和数据库查询都以非阻塞的方式执行,返回的结果由事件循环处理。如图所示:

  Node.js进程一次只会处理一个事件,并立即进入事件循环来检查后面事件。这样做的好处是CPU和内存可以同时集中在一件事情上,同时尽量让耗时的I/O等操作并行执行。对于低速连接攻击,Node.js只在事件队列中添加请求,等待操作系统的响应,所以不会有多线程开销,可以大大提高Web应用的健壮性,防止恶意攻击。

  事件循环机制

  所谓事件循环,就是NodeJS会利用事件机制来解决所有的异步操作,一个线程在循环中不断地检查事件队列。

  NodeJS中的所有逻辑都是事件的回调函数,所以NodeJS总是在事件循环中,程序入口是事件循环中第一个事件的回调函数。在的事件回调函数中,可能会发出I/O请求或发出事件,事件循环将在执行后返回。事件循环将检查事件队列中是否有未处理的事件,直到程序结束。NodeJS的事件循环对开发者是不可见的,由libev库实现。libev不断检查是否有活动的可检测的事件监听器,然后退出事件循环,直到检查不到为止,程序结束。

  更多关于node的信息,请访问:nodejs教程!这就是node的异步机制所基于的细节。请多关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: