zoukankan      html  css  js  c++  java
  • nodejs所用的概念(同步,异步,事件驱动,事件循环等)通俗解释

    1.回调:异步编程基本方法之一,当需要执行异步程序时候 ,一般采用后续传递,后续函数写入参数,逐层嵌套,使程序按期望方式走完流程
    2.异步: 每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的。

    js实现异步的方法:回调函数、事件监听、发布/订阅、Promises对象 ,有兴趣可以去阮一峰http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html一看。
    同步: 后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的。
    3.I.O:磁盘文件系统或者数据库的写入和读出。
    4.单线程: 所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。比如js的执行。
    多线程:多线程指一次可以执行多个任务,js的异步,非阻塞就是基于浏览器的多线程。
    5.事件: 事件是可以被 JavaScript 侦测到的行为。
    6.事件驱动:只有当事件发生时候才会调用回调函数,这种函数执行的方式叫做事件驱动。
    7.基于事件驱动的回调:通过这种方式实现的回调叫做基于事件驱动的回调。如果和io有关就可以叫做基于异步回调的io。
    8.事件循环:Event loop有大量的异步操作完成时需要调用相应回调函数,需要一种机制来管理执行先后,这种机制就叫做事件循环。为一个回调函数队列,node.js不断查询队列中是否有事件,查询到事件,调用相应javascript函数,机制为先进先出任务队列。

    总结:node.js为非阻塞 单线程 事件驱动,都是构建在HTTP协议之上的Web应用。适合高并发,IO密集操作。

  • 相关阅读:
    JVM Ecosystem Report 2020
    TiDB 简介
    Docker镜像分层打包方案
    Promethues + Grafana + AlertManager使用总结
    Spring Boot自动注入原理
    Spring Boot 2.x 自定义Endpoint
    Oracle 等待事件 Enq: CF
    1000行MySQL学习笔记
    PostgreSQL DBA常用SQL查询语句
    MongoDB DBA常用的NoSQL语句
  • 原文地址:https://www.cnblogs.com/LiSuSpAu/p/5906249.html
Copyright © 2011-2022 走看看